快排

//quick sort @liiuheng
#include <iostream>
#include<string>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int quicksort(int* head,int* tail){
int middle=*tail,flag=0;
int* left=head;
int* right=tail;
if(left<right){  
while(left!=right){
if(flag){
if(middle>*right){
*left++=*right;
flag=!flag;
}
else
right--;
}
else{
if(middle<*left){
*right--=*left;
flag=!flag;
}
else
left++;
}
  }
 }
*left=middle;
if(head<left-1)
quicksort(head,left-1);
if(tail>left+1)
quicksort(left+1,tail);
return 0;
}


int main(int argc, char** argv) {
int length;
cout<<"input the length of arr"<<endl;
cin>>length; 
int arr[length];
for(int i=0;i<length;i++){
cin>>arr[i];
}
quicksort(arr,&arr[length-1]);
for(int j=0;j<length;j++){
cout<<arr[j];
cout<<" ";
}
system("pause");
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值