排序算法复习——交换类排序
来源:互联网 发布:淘宝上穿越火线6烈龙 编辑:程序博客网 时间:2024/05/16 04:51
在交换类排序算法中,有冒泡排序和快速排序。
冒泡排序:
这个算法大家估计很熟悉了,不做介绍了。
这里有一个算法优化的地方,那就是设置标志位,如果在上一趟的比较当中,没有进行交换的话,就说明已经排好序了,不需要再进行排序了。
演练程序:
- #include <stdio.h>
- #define N 10
- int main()
- {
- int a[N] = {62, 48, 35, 77, 55, 14, 35, 98, 22, 10};
- int tmp, i, j, flag;
- for(i = 0; i < N; i++) {
- printf("%d ", a[i]);
- }
- printf("\n");
- flag = 1;
- /*控制比较的趟数,总共比较N-1趟*/
- for(i=0; i < N-1 && flag==1; i++) {
- flag = 0;
- /*相邻的两个元素进行比较,把泡泡冒到最底*/
- for(j=0; j < N-i-1; j++) {
- if(a[j] > a[j+1]) {
- tmp = a[j+1];
- a[j+1] = a[j];
- a[j] = tmp;
- flag = 1;
- }
- }
- }
- for(i = 0; i < N; i++) {
- printf("%d ", a[i]);
- }
- printf("\n");
- return 0;
- }
执行结果:
- 62 48 35 77 55 14 35 98 22 10
- 10 14 22 35 35 48 55 62 77 98
快速排序:
对于快速排序,一般是这么来设计的:首先保存第一个元素到一个变量x中,让它当作一个枢纽值,然后设置low和high下标分别指向最低处和最高处,总之,在一趟排序之后,x所放的位置要保证x前面的元素比x都小,x之后的元素都比x大就行了。
演练程序:
- #include <stdio.h>
- #define N 10
- int sort(int *a, int low, int high)
- {
- int pos, x;
- x = a[low];
- while(low < high) {
- while(low<high && a[high] >= x) {
- high--;
- }
- if(low < high) {
- a[low] = a[high];
- low++;
- }
- while(low<high && a[low] <= x) {
- low++;
- }
- if(low < high) {
- a[high] = a[low];
- high--;
- }
- }
- a[low] = x;
- pos = low;
- return pos;
- }
- void quicksort(int *a, int low, int high)
- {
- int pos;
- if(low < high) {
- pos = sort(a, low, high);
- quicksort(a, low, pos-1);
- quicksort(a, pos+1, high);
- }
- }
- int main()
- {
- int a[N] = {62, 48, 35, 77, 55, 14, 35, 98, 22, 10};
- int i, j;
- for(i = 0; i < N; i++) {
- printf("%d ", a[i]);
- }
- printf("\n");
- quicksort(a, 0, N-1);
- for(i = 0; i < N; i++) {
- printf("%d ", a[i]);
- }
- printf("\n");
- return 0;
- }
执行结果:
- 62 48 35 77 55 14 35 98 22 10
- 10 14 22 35 35 48 55 62 77 98
0
上一篇:排序算法复习——插入类排序
下一篇:排序算法复习——选择类排序
相关热门文章
- APP开发流程,你知道多少...
- Cisco VPP简介
- 单链表以排序方式插入...
- 以编程方式看待世界:12项值得...
- emacs 矩形选区、编辑
- test123
- 编写安全代码——小心有符号数...
- 彻底搞定C语言指针详解-完整版...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- 排序算法复习——交换类排序
- 排序算法复习——交换类排序
- 排序算法复习之——内部排序算法之——交换排序
- 排序算法——交换类排序
- 排序算法——交换排序
- 排序算法浅析——交换排序
- 排序算法——交换排序
- 算法——交换排序
- 排序算法复习——插入类排序
- 排序算法复习——选择类排序
- 数据结构复习-交换排序
- 排序算法之交换排序——冒泡排序
- 数据结构复习笔记01_排序算法_交换排序
- 数据结构&算法实践—【排序|交换排序】鸡尾酒排序
- 数据结构&算法实践—【排序|交换排序】奇偶排序
- 数据结构&算法实践—【排序|交换排序】梳子排序
- 数据结构&算法实践—【排序|交换排序】Bogo排序
- 排序算法-交换排序
- linux内核list.h头文件分析(七)——list.h应用
- bzoj 3729: Gty的游戏 splay+dfs序+阶梯博弈
- Weblogic10.3部署报com.ctc.wstx.stax.WstxInputFactory cannot be cast to javax.xml.stream.XMLInputFactory
- 关于linux内存管理
- 排序算法复习——插入类排序
- 排序算法复习——交换类排序
- 如何在JS中获取当前日期时间及其它操作的代码
- 电脑蓝屏怎么解决
- 排序算法复习——选择类排序
- 进程与线程的区别
- 杭电acm sum第二题
- 前端面试四
- linux系统启动五步曲
- 基于XEN的分布式虚拟块存储的研究
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
蜜蜂的巢
虾巢香辣虾地址
虾巢香辣虾团购
桂虾
石虾
虾料价格
咪咪虾条
虾条
虾条怎么做
虾条品牌
爱尚咪咪虾条
孕妇能吃虾条吗
虾条的热量
韩国虾条
虾条图片
虾条的做法
亲亲虾条图片
亲亲虾条
上好佳虾条
呃虾条
上好佳鲜虾条
玉美虾条
巧巧虾条
咪咪虾条图片
原始生存进化 紫菜虾条
都市小道士 草莓味虾条
虾油
油爆基围虾
虾油的做法
油焖大虾简单做法
虾油怎么吃
蚝油大虾
油焖大虾图片
湖北油焖大虾
熬虾油
武汉油焖大虾
油焖大虾的做法家常
潜江油焖大虾的做法
家常油焖大虾简单做法窍门
聂师傅油焖大虾
南极磷虾油价格