http://developer.51cto.com/art/201403/430986.htm
这篇博客讲的比较好。
下面也贴上我的代码!
#include<iostream>
using namespace std;
int arry[10];//假设只有10个元素
void QuickSort(int,int);
int main()
{
for(int i=0;i<10;i++)
cin>>arry[i];
QuickSort(0,9);
for(int i=0;i<10;i++)
cout<<arry[i]<<" ";
cout<<endl;
return 0;
}
void QuickSort(int left,int right)
{
if(left>=right)
return;
int base=arry[left];
int i=left;
int j=right;
int temp;
while(i<j)
{
while(i<j&&arry[j]>=base)//直到找到一个小于base的,也就是本应该放在右边的
j--;
while(i<j&&arry[i]<=base)//直到找到一个大于base的,也就是本应该放在左边的
i++;
if(i<j)//把两个数交换
{
temp=arry[i];
arry[i]=arry[j];
arry[j]=temp;
}
}
arry[left]=arry[i];//arry[i]这个数一定是等于或小于base的
arry[i]=base;
QuickSort(left,i-1);//递归左边
QuickSort(i+1,right);//递归右边
}