排序4快速排序
来源:互联网 发布:联通机顶盒安装软件 编辑:程序博客网 时间:2024/05/21 06:36
#include<iostream>
using namespace std;
#define MAX 255
int R[MAX];
int Partition(int i,int j)
{
//对R[low...high]做划分,并返回基准记录位置
int pivot=R[i];//用区间的第一个记录作为基准
while(i<j)
{
while(i,j&&R[j] >= pivot)
j--;//从右向左进行扫描,找到第一个关键字小于pviot.key的记录R[j];
if(i<j)
R[i++]=R[j];//相当于将R[j]值付给R[i]后,i指针加1;
while(i<j && R[i] <= pivot)
i++;//从左向右进行扫描,找到第一个关键字大于pvoit.key的记录R[i];
if(i<j)
R[j--]=R[i];//相当于将R[i]的值付给R[j]后,j指针减1;
}//此循环结束后,以区间的第一个记录为基准,左面的值均小于他,右面的值均大于他
R[i]=pivot;//基准记录被最后定位
return i;
}
void Quick_Sort(int low,int high)
{
int pivotpos;//划分后地基准记录位置
if(low<high)
{//当区间长度大于1时才需要排序
pivotpos = Partition(low,high);//对R[low...high]做划分
Quick_Sort(low,pivotpos-1);//対左区间进行递归排序
Quick_Sort(pivotpos+1,high);//对右区间进行递归排序
}
}
int main()
{
int i,n;
puts("Please input total element number of the sequence:");
cin>>n;
if(n <= 0 || n > MAX)
{
printf("n must more then 0 and less than %d.\n",MAX);
exit(0);
}
puts("Please input the element one by one");
for(i=1;i<=n;i++)
{
cin>>R[i];
}
puts("the sequence you input");
for(i=1;i<=n;i++)
{
cout<<R[i]<<" ";
}
Quick_Sort(1,n);
puts("\nThe sequence after quick_sort id :");
for(i=1;i<=n;i++)
{
cout<<R[i]<<" ";
}
return 0;
}
- 排序4快速排序
- 排序(4) ---快速排序
- [排序算法4] - 快速排序
- 排序(4)快速排序
- 排序算法(4)----快速排序
- (4)快速排序
- 4、快速排序
- 排序-4-快速
- 排序算法4--快速排序法
- 4 -- 交换排序之快速排序
- C++ 排序算法(4)---快速排序
- 排序算法(4)——快速排序
- 排序算法4_快速排序
- 排序之快速排序
- 排序算法--快速排序
- 插入排序,快速排序
- 快速排序 冒泡排序
- 排序算法--快速排序
- How to call Visual Basic .NET run-time library members from Visual C#
- Session的简介和应用
- windows消息大全
- dede 中文分词调用 更新
- 简明Vim练级攻略
- 排序4快速排序
- C#文章采集浅析。
- [SDK]android Activity 生命周期
- import默认包中的类
- UISlider 按钮透明
- 整合cocos2d API文档到XCode中
- Session应用--用servlet写一次性验证码
- GCC 内联汇编测试
- db2常用命令大全