1. Quicksort (快速排序)
最简单实现:
int partition(int a[], int start, int end)
{
int pivot = a[start];
int i = start;
int j = start + 1;
while(j <= end)
{
if(pivot > a[j])
{
swap(a[++i], a[j++]);
}
else
{
j++;
}
}
swap(a[start], a[i]);
return i;
}
void quick_sort(int a[], int start, int end)
{
if(start >= end)
return;
int q = partition(a, start, end);
quick_sort(a, start, q-1);
quick_sort(a, q+1, end);
}