博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
系统学习qsort1 尤其partition
阅读量:5279 次
发布时间:2019-06-14

本文共 1321 字,大约阅读时间需要 4 分钟。

void QuickSort1(int *data, int l, int u){

if (l>=u)return;//递归出口

// divide

int m=l;

for(int i=l+1;i<=u;i++){

if( data[i] <data[l])//品味这个条件

swap(data,++m ,i );

//三月份的这个版本,最大的发现就是:

//data[m]存储的是:当前比data[l]大的第一个元素。详细品味那个图

//cout<<"debug divide in quicksort "<<data[m]<<endl;

}

swap(data,l,m);//why??

 

// 特别的,我把这个不等式放在这儿:

// x [1..m-1 ] <x [m] <= a[m+1...u]

 

QuickSort1(data,l,m-1);

QuickSort1(data,m+1,u);

}

 

void QuickSort2(int *data,int l,int u){

int i,j;

if(l>=u)return;

int temp;

 

temp=data[l];

i=l;

j=u+1;//两个界限都比以前大step 1

 

while (true)

{ do i++; while(i<=u && data[i] <temp); //想想这里的上届下界?

do j--; while( j>=l && data[j] >temp); //66 add ..

if (i>j)

{

break;

}

swap(data, i ,j);//测试,这里用i 一样吧??

}

//when i==j 退出

 

swap(data,l,j); //细节

QuickSort2(data,l,j-1);//不是j

QuickSort2(data,j+1,u);

 

}

 

int cutoff=1;//为寻找最优设置。

void QuickSort3(int *data,int l, int u){

 

int i,j;

if ( u-l <cutoff ) return ; //cutofff

swap(data, l, rand() % (u -l) +1);

int temp;

 

temp=data[l];

i=l;

j=u+1;

 

while (true)

{

do i++; while( i<=u && data[i] < temp);

do j--; while( data[j] >temp);

if (i>j)

{

break;

}

int t=data[i]; data[i]=data[j];data[j]=t;

 

}

swap(data,l,j);

QuickSort3(data,l,j-1);

QuickSort3(data,j+1,u);

 

}

 

 

源文档 <file:///C:\Documents%20and%20Settings\Administrator\桌面\cache1.doc>

转载于:https://www.cnblogs.com/titer1/archive/2012/04/16/2451304.html

你可能感兴趣的文章
Android 4.4及以后将内容布局延伸到状态栏
查看>>
BaseActivity--上门啦
查看>>
JS DOM对象
查看>>
salt一键部署hive
查看>>
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
查看>>
Javascript 面向对象编程(一):封装
查看>>
[转载]为什么有些语言可以被反编译?而有的不能?
查看>>
尝试利用刚学的计算机网络知识对域名绑定和解析做出解释
查看>>
MySQL中删除重复数据只保留一条
查看>>
解决“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件问题
查看>>
mysql数据库存储路径更改 数据文件位置
查看>>
微信寻人
查看>>
android开发系列之socket编程
查看>>
python正则表达式
查看>>
java反射详解 二
查看>>
多功能弹窗控件layer
查看>>
datetimepicker[jquery-ui]时间控件的三种初始化方法
查看>>
Boa服务器编译移植
查看>>
数据封装
查看>>
程序员 vs HR(皮这么一下很开心)
查看>>