#include<stdio.h>
void q_sort(int* num, int left, int right) {
if (left >= right) {
return;
}
int i = left+1, j = right;
int pivot = num[left];
int temp;
while (i <= j) {
while (num[i] <= pivot && i<=right) {
i++; //从左向右找大于或等于基准的数
}
while (num[j] > pivot && j>=left) {
j--; // 从右向左找小于或等于基准的数
}
if (i <= j) { // 如果i和j没有交错
temp = num[i];
num[i] = num[j];
num[j] = temp;
i++;
j--;
}
}
temp = num[i-1];
num[i-1] = num[left];
num[left] = temp;
q_sort(num, left, j-1);
q_sort(num, i, right);
}
int main() {
int num[10] = { 35,10,42,3,79,12,62,18,51,23 };
int n = sizeof(num)/sizeof(int);
int left = 0, right = n - 1;
q_sort(num,left,right);
int i;
printf("\n");
for (i = 0; i < 10; i++) {
printf("%d ", num[i]);
}
}