#include <stdio.h>
void qsort(int arr[], int start, int end) {
if (start >= end-1) return;
int left = start;
int right = end-1;
int tmp = arr[start];
while (left < right) {
while (arr[right]>tmp && right>left) right--;
arr[left] = arr[right];
// arr[right] = tmp; // arr[right]并没有实际用到所以这里可以省略
while (arr[left]<=tmp && left<right) left++;
arr[right] = arr[left];
arr[left] = tmp;
}
qsort(arr, start, left);
qsort(arr, left+1, end);
}
int main() {
int n;
int arr[105];
while (scanf(" %d", &n) != EOF) {
for (int i = 0; i < n; i++) scanf(" %d", &arr[i]);
qsort(arr, 0, n);
for (int i = 0; i < n; i++) printf("%d ", arr[i]);
printf("\n");
}
return 0;
}
快速排序(C实现)
最新推荐文章于 2024-06-24 20:29:36 发布