博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序
阅读量:6968 次
发布时间:2019-06-27

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

#include  
#include
 
int num[10]={1,5,2,6,7,3,8,0,4,22};
 
void swap(int* a,int*b)
{
int tmp;
tmp=*b;
*b=*a;
*a=tmp;
 
}
 
void sort(int* s_num,int left,int right)
{
if(left>=right)
return;
 
int mid_elm=(left+right)/2;
swap(&s_num[left],&s_num[mid_elm]);
int last=left;
 
for(int i=left+1;i<=right;i++)
if(s_num[i]
{
swap(&s_num[i],&s_num[++last]);
}
 
swap(&s_num[last],&s_num[left]);
sort(s_num,left,last-1);
sort(s_num,last+1,right);
 
}
int main()
 
{  int num[7]={0,2,13,4,7,1,3};
sort(num,0,6);
 
for(int i=0;i<7;i++)
printf("num is %d ",num[i]);
 
 
}  
 
 
以下是标准的方法,分别从后向前和从前向后搜索
void sort(int* s_num,int left,int right)
{
int sto_s_num=s_num[left];
int sav_hole=left;
int sav_r=right;
int sav_l=left;
 
if(left<0 || right<=0 ||left>right)
return;
while(left!=right)
{
while(s_num[right]>sto_s_num)
right--;
if(right==left)
goto over;
}
swap(&s_num[right],&s_num[sav_hole]);
sav_hole=right;
 
 
while(s_num[left]<sto_s_num)
left++;
if(right==left)
goto over;
}
swap(&s_num[left],&s_num[sav_hole]);
sav_hole=left;
}
 
over:
sort(s_num,sav_l,sav_hole-1);
sort(s_num,sav_hole+1,sav_r);
 
}

转载于:https://www.cnblogs.com/yurius/archive/2013/01/12/2857561.html

你可能感兴趣的文章
Oracle ORA-03137: TTC protocol internal error : [12333] 故障分析
查看>>
IE浏览器下web调试工具之--IE WebDeveloper介绍
查看>>
交换两个变量值的方法汇总
查看>>
Apache、php、mysql默认安装路径
查看>>
linux下访问ftp服务器和文件传输
查看>>
CentOS下部署java quartz job
查看>>
唐僧、悟空、白骨精的信 悟空你一定Hold住啊
查看>>
jQuery.ptTimeSelect 时间控件
查看>>
Redis 在Centos Linux 上的启动脚本
查看>>
《Pro ASP.NET MVC 3 Framework》学习笔记目录
查看>>
《JavaScript高级程序设计》读书笔记(九):本地对象Array
查看>>
php 中文字符串截取子串
查看>>
从4.8.5版本升级到FastReport 4.10.1后,中文菜单有乱码,有的没有显示
查看>>
Jvascript 弹出层
查看>>
Sharepoint学习笔记—ECMAScript对象模型系列-- 3、如何查看SP object的所有方法(method)...
查看>>
信息安全大赛出的题目
查看>>
PHP&Javascript&CSS&jQuery常用知识大全(整理+原创)
查看>>
C#:WebBrowser控件的使用教程及相关问题整理
查看>>
【Swift学习】Swift编程之旅---属性(十四)
查看>>
HTTP详解
查看>>