九种常用排序——快速排序(不稳定)
#include<iostream>
#include <cstring>
using namespace std;
void display(int A[],int n){
for(int i=0;i<n;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
}
int handle(int A[],int low,int high){
int k=A[low];
while(low<high){
while(low<high && A[high]>=k){
high--;
}
A[low]=A[high];
while(low<high && A[low]<=k){
low++;
}
A[high]=A[low];
}
A[low]=k;
return low;
}
void ShellSort(int A[],int low,int high) {
if(low<high){
int temp=handle(A,low,high);
ShellSort(A,low,temp-1);
ShellSort(A,temp+1,high);
}
}
int main()
{
int a[]={0,15,36,11,8,25,35,19,99,107,14,92};
ShellSort(a,0,11);
display(a,12);
}