кодесурса
«C

Упражнения C: алгоритм сортировки выбора

script1adsense2code
script1adsense3code

Алгоритм поиска и сортировки при программировании на C: упражнение 2 с решением

Напишите программу на C для сортировки списка элементов с использованием алгоритма сортировки выбора.

Согласно Википедии «В компьютерных науках сортировка по выбору является алгоритмом сортировки, в частности, сортировкой по месту». Он имеет O (n2) временную сложность, что делает его неэффективным в больших списках, и, как правило, работает хуже, чем аналогичный тип вставки ».

Замечания:
а) найти максимум элементов
б) поменять местами два элемента

Наглядная презентация - Алгоритм поиска выбора:

«C

Пример решения:

Образец кода C:

#include <stdio.h>
  int main()
  {
  int arr[10];
   int i, j, N, temp;
 /* function  declaration */
  int find_max(int  b[10], int k);
  void exchang(int  b[10], int k);
  printf("\nInput no. of values in the array : N");
  scanf("%d",&N);
   printf("\nInput  the elements one by one: ");
  for(i=0; i<N ;  i++)
  {
  scanf("%d",&arr[i]);
  }
  /* Selection sorting  begins */
  exchang(arr,N);
  printf("Sorted  array :\n");
  for(i=0; i< N ;  i++)
  {
  printf("%d\n",arr[i]);
  }
}
/* function to find the maximum value */
  int find_max(int b[10], int k)
  {
  int max=0,j;
  for(j = 1; j <=  k; j++)
  {
  if ( b[j] >  b[max])
  {
  max =  j;
  }
  }
  return(max);
  }
  void exchang(int  b[10],int k)
  {
  int  temp, big, j;
  for ( j=k-1;  j>=1; j--)
  {
  big =  find_max(b,j);
  temp = b[big];
  b[big] = b[j];
  b[j] = temp;
  }
  return ;
  }

Пример ввода:

 Вход № значений в массиве: 3
Введите элементы один за другим: отсортированный массив: 15
 56
 12
 

Пример вывода:

 Вход № значений в массиве: 
Введите элементы один за другим: отсортированный массив:
12
15
56

Блок - схема:

«Блок-схема:

Редактор кода программирования C:

Улучшите этот пример решения и опубликуйте свой код через Disqus.

Previous: написать программу на C для бинарного поиска.
Далее: Напишите программу на C для сортировки списка элементов с использованием алгоритма пузырьковой сортировки.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code