排序--快排

快排的几个基本要点:

1 找基准值,这里需要说明的是一般选取数组的首地址元素作为基准值 所以在进行函数调用时要去从第二个取起;

2 用基准值把数据分为三块,一块为小于基准值的,另一块为大于基准值的,而中间的那个 部分则作为基准值的移动数据(或者是比较数据)直到分成三块(第二块只有基准值);

3 实现上面的部分只是完成了第一次的分配,然后把除基准值的两部分分别重新调用函数 4 这就是所谓的快排!!!

 

 

#include<iostream>
#define N 11
using namespace std;
int main() { void QuickSort(int [],int ,int ); int a[N]; for(int i=1;i<N;i++) cin>>a[i]; QuickSort(a,1,N-1); for(int i=1;i<N;i++) cout<<a[i]<<" "; return 0; } void QuickSort(int s[],int start,int end) { int i,j; i=start; j=end; s[0]=s[start];//设定基准值 while(i<j) { while(i<j&&s[0]<s[j]) j--;//位置左移 if(i<j)//凡是满足上述条件进行位置调换;  { s[i]=s[j]; i++; } while(i<j&&s[i]<=s[0]) i++; if(i<j) { s[j]=s[i]; j--; } } s[i]=s[0];//确定基准值得位置 if(i>start) QuickSort(s,start,j-1); if(i<end) QuickSort(s,j+1,end); }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值