#include<stdio.h>
void QuickSort(int array[],int left,int right) {
int temp = 0;
temp = array[left];
int i = left;
int j = right;
int t = 0;
int k = 0;
if (i > j) {
return;
}
while (i != j) {
while (array[j] >= temp&&i<j) {//若右边的数比基准值大,则j--
j--;
}
while (array[i] <= temp && i < j) {//若左边的数比基准值小,则i++
i++;
}
if (i < j) {
t = array[i];
array[i] = array[j];
array[j] = t;
}
}
array[left] = array[i];
array[i] = temp;
//递归
QuickSort(array, left, j-1);
QuickSort(array, j + 1, right);
}
int main() {
int n = 0;
int array[100];
int temp = 0;
printf("请输入排序序元素个数:");
scanf_s("%d", &n);
//初始化数组
for (int i = 0; i < n; i++) {
array[i] = 0;
}
//排序序列
printf("请输入排序序列:");
for (int j = 0; j < n; j++) {
scanf_s("%d", &array[j]);
}
printf("初始序列为:");
for (int m = 0; m < n; m++) {
printf("%d", array[m]);
}
QuickSort(array, 0, n-1);
printf("排序后序列为:");
for (int k = 0; k < n; k++) {
printf("%d", array[k]);
}
}
快速排序(C语言)
最新推荐文章于 2024-08-03 18:54:56 发布