Упражнения C: алгоритм быстрой сортировки
Алгоритм поиска и сортировки при программировании на C: упражнение 7 с решением
Напишите программу на C для сортировки списка элементов с использованием алгоритма быстрой сортировки.
Примечание. Быстрая сортировка - это сортировка сравнения, означающая, что она может сортировать элементы любого типа, для которых определено отношение «меньше чем» (формально, общий порядок).
Считать n значений в массив и отсортировать с помощью быстрой сортировки.
Наглядная презентация - алгоритм быстрой сортировки:
Пример решения:
Образец кода C:
#include<stdio.h>
int n;
int main()
{
int arr[30],l,r,i;
void quick_sort(int arr[],int,int);
printf("\nInput number of elements: ");
scanf(" %d",&n);
printf("\nInput array values one by one: ");
for(i=0;i<n;i++)
scanf(" %d",&arr[i]);
l=0; r=n-1;
quick_sort(arr,l,r);
printf("\nThe quick sorted array is: ");
for(i=0;i<n;i++)
printf(" %d",arr[i]);
printf("\n");
}
void quick_sort(int arr[],int low,int high)
{
int temp,left,right,x,k;
if(low>=high)
return;
else
{
x=arr[low];
right=low+1;
left = high;
while(right<=left)
{
while(arr[right]<x && right <= high)
{
right ++;
}
while(arr[left]>x && left > low)
{
left--;
}
if(right<left)
{
temp=arr[right];
arr[right]=arr[left];
arr[left]=temp;
right++;
left--;
}
}
arr[low]=arr[left];
arr[left]=x;
quick_sort(arr,low,left-1);
quick_sort(arr,left+1,high);
}
}
Пример ввода:
3 12 15 56
Пример вывода:
Введите количество элементов: Значения входного массива одно за другим: Быстро отсортированный массив: 12 15 56
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите программу на C для сортировки чисел, используя алгоритм кучи (MAX heap).
Далее: Напишите программу на C для сортировки списка элементов с использованием алгоритма сортировки по основанию.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования