递归分治策略排序C语言实现
#include <iostream>
#include <stdio.h>
using namespace std;
#include<stdio.h>
#include<string.h>
void quickSort(int a[], int i, int j) {
if(i<j) {
int l=i,r=j,base=a[l];
while(l<r) {
while(a[r]>base&&r>l) {
r--;
}
if(l<r) {
a[l++]=a[r];
}
while(a[l]<base&&r>l) {
l++;
}
if(l<r) {
a[r--]=a[l];
}
}
a[l]=base;
quickSort(a,i,l-1);
quickSort(a,l+1,j);
}
}
int main() {
int a[100];
int n;
scanf("%d",&n);
for(int i=0; i<n; i++) {
scanf("%d",&a[i]);
}
quickSort(a,0,n-1);
for(int i=0; i<n; i++) {
printf("%d ",a[i]);
}
putchar('\n');
}