int* quickSort(int a[],int start, int end){
int i = start;
int j = end;
int buffer = 0;
if (start >= end) {
return a;
}
if (a == NULL) {
return NULL;
}
if (start < 0 || end < 0) {
return NULL;
}
buffer = a[i];
while (i < j) {
// 从尾找比他小的数
while (i < j && buffer <= a[j]) {
j--;
}
if (i < j) {
a[i] = a[j];
i++;
}
// 从头找比他大的数
while (i < j && buffer > a[i]) {
i++;
}
if (i < j) {
a[j] = a[i];
j--;
}
}
a[i] = buffer;
printArray(a, end-start);
// 左右两段开始递归
quickSort(a,start,i - 1);
quickSort(a,i + 1,end);
return a;
}
快速排序C语言实现
最新推荐文章于 2023-04-12 22:32:38 发布