Упражнения C: алгоритм сортировки выбора
Алгоритм поиска и сортировки при программировании на C: упражнение 2 с решением
Напишите программу на C для сортировки списка элементов с использованием алгоритма сортировки выбора.
Согласно Википедии «В компьютерных науках сортировка по выбору является алгоритмом сортировки, в частности, сортировкой по месту». Он имеет O (n2) временную сложность, что делает его неэффективным в больших списках, и, как правило, работает хуже, чем аналогичный тип вставки ».
Замечания:
а) найти максимум элементов
б) поменять местами два элемента
Наглядная презентация - Алгоритм поиска выбора:
Пример решения:
Образец кода 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 программирования