一、效果图
二、源代码
#include<stdio.h>
#define N 9
//排序,快速排序
int partition(int a[], int start, int end){ //划分,返回划分基准点
int i = start, j = end;
int tmp = a[start]; //基准值
while (i != j){
//右边
while (a[j] > tmp && j > i){
j--;
}
a[i] = a[j];
//左边
while (a[i] < tmp && j>i){
i++;
}
a[j] = a[i];
}
a[i] = tmp;//还回去
return i;
}
void quickSort(int a[], int start, int end){
if (end - start >=1){ //个数>=2,需要进行划分
int i = partition(a, start, end); //获取基准点下标
quickSort(a, start, i - 1); //左边
quickSort(a, i + 1, end); //右边
//无需合并
}
}
void main(){
int a[] = { 5,9,11,4,23,6,1,12,18};
quickSort(a, 0,N-1);
for (int i = 0; i< N; i++){
printf("%d ", a[i]);
}
}