quicksort 快速排序C:
int partition(int arr[],int left,int right)
{
int p, q, x, t;
x = arr[left];
p = left-1;
q = right+1;
while(p+1 != q) {
if(arr[p+1] <= x)
p++;
else if(arr[q-1] > x)
q--;
else {
t = arr[p+1];
arr[++p] = arr[q-1];
arr[--q] = t;
}
}
arr[left] = arr[p];
arr[p] = x;
return p;
}
void quicksort(int arr[], int left, int right)
{
int p;
if (left < right) {
p=partition(arr, left, right);
quicksort(arr, left, p-1);
quicksort(arr, p+1, right);
}
}
int aa[]={3,2,5,31,65,23,98,21,34,56,77,43,24,88};
quicksort(aa, 0, sizeof(aa)/sizeof(aa[0])-1);
本文介绍了一种使用C语言实现的快速排序算法。通过详细展示partition函数和quicksort函数的具体实现过程,使得读者能够更好地理解快速排序的工作原理。此外,还提供了一个具体的示例数组进行排序操作,帮助读者验证排序算法的有效性和正确性。
373

被折叠的 条评论
为什么被折叠?



