#include<iostream>
void prin(int *list,int len)
{
for(int i = 0 ;i< len ;++i)
std::cout<<list[i]<<" "<<std::endl;
}
int partition_1(int *list,int low,int high)
{
int privot = list[low] ;
while(low < high)
{
while( low < high && list[high] >= privot)
--high ;
if(low < high)
list[low++] = list[high] ;
while(low < high && list[low] <= privot)
++low ;
if(low < high)
list[high--] = list[low] ;
}
list[low] = privot ;
return low ;
}
void quickSort(int *list,int low,int high)
{
int pos ;
if(low< high)
{
pos = partition_1(list,low,high) ;
quickSort(list,low,pos-1) ;
quickSort(list,pos+1,high) ;
}
}
int main()
{
int a[10] = {5,8,2,4,9,0,1,6,7,3} ;
quickSort(a,0,sizeof(a)/sizeof(int)-1) ;
prin(a,sizeof(a)/sizeof(int)) ;
system("pause") ;
return 0 ;
}
第一次
3 1 2 4 0 |5| 9 6 7 8
第二次
0 1 2 |3| 4 8 6 7 |9
第三次
0 |1 2 7 6 |8
第四次
1| 2 6 | 7