快速排序的步骤
1.确定两个端点值例如:将左端点定为i,将右端点定为j
2.确定pivolt的数值,pivolt的值可为左端点,可为中间值,也可为右端点。
3.将两个端点进行比较,并交换顺序,此时两端指针内移。
5。将两端区间进行遍历比较排序。
代码如下:
#include [HTML_REMOVED]
void qsort(int s[], int start, int end) {
int i, j, pivot;
if (start >= end) return;
pivot = s[start];
i = start;
j = end;
while (i < j) {
while (i < j && s[j] > pivot) j–;
if (i < j) s[i] = s[j];
while (i < j && s[i] < pivot) i;
if (i < j) s[j–] = s[i];
}
s[i] = pivot;
qsort(s, start, i - 1);
qsort(s, i + 1, end);
}
int main() {
int a[11]; // 数组大小需要是11,因为索引从0到10
int i;
printf("输入数值:\n");
for (i = 0; i < 10; i++) { // 数组索引从0开始
scanf("%d", &a[i]);
}
qsort(a, 0, 9); // 排序的区间是从0到9
printf("排序的顺序是:\n");
for (i = 0; i < 10; i++) { // 同样,输出也是从0到9
printf("%5d", a[i]);
}
printf("\n");
return 0;
}