数据结构与算法18:快速排序法QuickSort
快速排序法的基本步骤:
1. 选定一个key
2. 将比key小的放到左边,比key大的放到右边
3. 对key左右两端分别快排
C语言代码:
void quicksort(int start, int end, int data[])
{
int key;
if (end - start <= 1)
{
return;
}
key = data[start];
i = start;
j = end;
while (i != j)
{
while (data[i] <= key)
{
i++;
}
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
while (data[j] >= key)
{
j--;
}
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
if (i > start)
quicksort(start, i-1, data);
if (end > i)
quicksort(i+1, end, data);
}