Реализация быстрой сортировки - C (СИ) (148096)
Формулировка задачи:
Очень надеюсь на вашу помощь. Не смог разобраться сам
Решение задачи: «Реализация быстрой сортировки»
textual
Листинг программы
#include <stdio.h>
void qsort_k(int v[], int left, int right)
{
int i, last;
void swap(int v[], int i, int j);
if(left>=right)
return;
swap(v, left, (left+right)/2);
last = left;
for(i=left+1; i<=right; i++)
if (v[i]<v[left])
swap(v, ++last, i);
swap(v, left, last);
qsort_k(v, left, last-1);
qsort_k(v, last+1, right);
}
void swap(int v[], int i, int j)
{
int temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;
}
int main(void)
{
int a[10]={4,6,1,8,2,99,55,34,4,1};
qsort_k(a, 0, 9);
for(int i=0; i<10; ++i)printf("%d ", a[i]);
return 0;
}