第15周 啊哈算法 快速排序算法
2016-07-07 14:44
260 查看
问题及代码:
/*快速排序算法:从右边高位开始找,再从左边开始,直到相遇与基数对换,然后递归循环调用*/ #include<stdio.h> int a[101],n; void quicksort(int left,int right) { int i,j,t,temp; if(left>right) //定义两边面对面走,相遇就停止往前走了 return; temp=a[left]; //temp存的是基数 i=left; j=right; while(i!=j) { while(a[j]>=temp && i<j) //右边大于基数的留在右边 j--; while(a[i]<=temp && i<j) //左边小于基数的留在左边 i++; if(i<j) //除去上面两个条件的情况,且满足i与j未相遇,余下的所有数都交换.为了后面实现交换,所以不能将if(i<j)用来控制整体循环 { t=a[i]; a[i]=a[j]; a[j]=t; } } a[left]=a[i]; //基数与相遇的值交换 a[i]=temp; quicksort(left,i-1); //继续左边同上操作,递归循环 quicksort(i+1,right); } int main() { int i,j,t; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); quicksort(0,n-1); //快速排序调用 for(i=0;i<n;i++) printf("%d",a[i]); getchar();getchar(); //暂停程序 return 0; }
相关文章推荐
- mysql explain用法
- PHP安全编码
- 非接触式IC卡、条码卡、磁道卡、接触式IC卡、芯片卡
- 获得语音播报的功能
- LINUX的LAMP环境搭配
- 通过圆的颜色并结合霍夫变换检测目标圆的OpenCV代码
- git 配置SSH免密
- 计算机中的比较通俗的书
- 五句话搞定JavaScript作用域
- 任务调度中心 (普通版)【原】
- C++读取文件夹下的多个文件
- Hibernate官网jar包下载
- 分分钟解决iOS开发中App启动广告的功能
- 设置启动界面ios 8设置状态栏字体颜色
- Pos终端中的主密钥、工作密钥、pin密钥、mac密钥
- 编辑器
- ios 常用字符串的操作
- Extjs 回车查询
- Yii2框架与MongoDB拓展、Redis拓展的安装流程
- Android Files的文件读取解析+代码案例