快速排序
#include <stdio.h>
void displayArray(int a[], int n) {
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
}
int PartitionArray(int a[], int s, int t) {
int i = s;
int j = t;
int tmp = a[s];
while (i != j) {
while (j > i && a[j] >= tmp) {
j--;
}
a[i] = a[j];
while (i < j && a[i] <= tmp) {
i++;
}
}
a[i] = tmp;
return i;
}
void QuickSortArray(int a[], int s, int t) {
if (s < t) {
int i = PartitionArray(a, s, t);
QuickSortArray(a, s, i - 1);
QuickSortArray(a, i + 1, t);
}
}
int main() {
int a[10] = { 1, 6, 8, 4, 6, 1, 5, 4, 7, 8 };
printf("排序前:\n");
displayArray(a, 10);
printf("排序后:\n");
QuickSortArray(a, 0, 9);
displayArray(a, 10);
return 0;
}