#快速排序
#一般把第一位对应的数放在临时变量中,然后用最后依次向前一位的数据和temp进行对比,如果 < temp,则把 j对应的值赋值给i对应的值,
#然后在对应i的值和temp的值,大于temp的则赋值给j对应的值,
#然后把temp的值查到i的位置
#再调用两次位置数据进行处理 < i 和 > i
#include <stdio.h>
#define N 10
void quick_sort(int a[], int n);
int main(void)
{
int a[N] = {23,1,22,3,54,3,24,5,34,6};
quick_sort(a, N);
printf("the sort number is\n");
for (int i = 0; i< N; i++) {
printf("%d\n", a[i]);
}
}
void quick_sort(int a[], int n)
{
int i,j,temp;
i = 0;
j = n -1;
temp = a[0];
if (n > 1) {
while (i != j) {
for (; i< j; j--) {
if (a[j] < temp) {
a[i] = a[j];
break;
}
}
for (; i< j; i++) {
if (a[i] > temp) {
a[j] = a[i];
break;
}
}
}
a[i] = temp;
quick_sort(a, i);
quick_sort(a+i+1, n-i-1);
}
}