#include <iostream>
using namespace std;
void swap(int *num1,int *num2){
int temp=*num1;
*num1=*num2;
*num2=temp;
}
int partition(int data[],int length,int start,int end){
if(data==NULL||length<=0||start<0||end>=length||start>end)
throw "Invalid Input";
int index=start+end;
index=index/2;
swap(data[index],data[end]);
int small=start-1;
for(index=start;index<=end;++index){
if(data[index]<data[end]){
++small;
if(small!=index)
swap(data[small],data[index]);
}
}
++small;
swap(data[small],data[end]);
return small;
}
void quickSort(int data[],int length,int start,int end){
if(start==end)
return;
int index=partition(data,length,start,end);
if(start<index)
quickSort(data,length,start,index-1);
if(index<end)
quickSort(data,length,index+1,end);
}
int main() {
cout << "test\n";
int data[]={21,3,41,5,6,12,7,8,2,4,43,3,7,65};
quickSort(data,14,0,13);
for(int i=0;i<14;i++){
cout<<data[i]<<endl;
}
return 0;
}
快速排序 c++ 实现
最新推荐文章于 2019-10-29 16:08:36 发布