冒泡排序 ---C语言程序设计.ppt

冒泡排序 ---C语言程序设计 主讲人:朱志慧 河南牧业经济学院微课比赛 算法思想 算法分析 程序实现 C语言程序设计----冒泡排序 拓展思考 算法思想 一、基本思路 从前到后扫描数据序列,比较相邻两个数的大小,将小的调到前面,大的调到后面,每比较一轮,最大的数将排到最后;再将余下的元素进行比较,得到新的最大数。以此类推,直到所有数据按顺序排列。 二、算法演示 算法思想 第 1 轮 比较4次 二、算法演示 算法思想 二、算法演示 二、算法演示 算法思想 第 2 轮 比较3次 二、算法演示 二、算法演示 算法思想 第 3 轮 比较2次 二、算法演示 二、算法演示 算法思想 第 4 轮 比较1次 外层循环 内层循环 第1轮 第2轮 第3轮 第4轮 i=1; i<=4; i++ 5-i; j=1; j<=5-i; j++ 算法分析 数据输入 排序 数据输出 for ( i=1; i<=5; i++ ) scanf ( "%d", &a[i] ); for ( i=1; i<=4; i++ ) for ( j=1; j<=5-i; j++ ) if ( a[j] > a[j+1] ) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } for ( i=1; i<=5; i++ ) printf ( "%d ", a[i] ); 程序实现 “升序”与“降序”? 排序数据的个数问题(N个) 拓展思考 首先带大家进入泡泡的世界,这些泡泡大小不一,随机的分布在屏幕上 我们可以通过一些排序方法,将它们按照大小顺序依次排列。 排序方法有很多种,今天我们来学习一下如何用C语言来实现冒泡排序。下面将以4个步骤进行展开讲述。 1.算法演示,2.算法分析,3.程序实现,4.拓展思考 根据算法思想,以5个泡泡为例,给大家演示一下冒泡排序的过程。每个泡泡分别代表不同的数据,现在的次序为39,21,16,25, 和8,那么我们来进行第一轮的排序。 前面相邻两个数39和21相比较,21小于39,两者交换,保证小的数据放在前面。相邻两个数39和16比较;16小于39交换。39和25比较,25小于39,两者交换;39和8比较,8小于39,两者交换。当第一轮比较完毕后,最大的数39被交换到了后一位。第一轮比较的次数为4。 下面再对剩下的前4个元素进行第2轮的排序。相邻两个数21和16比较,16小于21,交换;相邻两个数21和25比较,大家注意一下,25不小于21,所以两者不用交换;再比较25和8,8小于25,两者交换。第二轮比较结束后,次大的数25被交换到了倒数第二位。第二轮比较的次数为3。 下面,我们进行算法分析。第一轮重复比较了4次,第二轮重复比较3次,第三轮重复比较2次,第四轮比较1次。每一轮都进行了多次重复比较,对于这5个数据排序,应该用嵌套循环,轮数应当做外层循环,次数当作内层循环。 假设i为外层循环变量,初值为1,步长为1;进行4轮比较,外层循环应该for(i=1;i<=4;i++) 对于内层循环,;从轮数和次数的关系中,我们可以看到,轮数越多,次数越少,因此它们是一个减的关系, 当i=1, 比较4次,i=2比较3次,依次类推,比较次数应该为5-I,j=5-2,依次类推,假设j为内层循环变量为,循环条件应该为:(j=0;j<=5-i;j++) * 程序分了三块,第一块是数据的输入,第二块排序,第三块是数据的输出。 首先,通过for循环将5个数据输入到数组中, 然后通过嵌套循环实现5个数据的冒泡排序,其中外层循环做了4次比较,所以应该为i=1;i<=4;i++; 在每一轮当中,比较的次数为5-i,所以,内层循环应该为j=1;j<=5-i;j++ 在比较过程中,如果前一个元素a[j]>a[j+1],那么他们将做一个交换。 最后,我们将排列好的5个数据输出来。 好,我们对整个程序在VC++平台上进行实现。 在程序;设计了4个变量,其中数组a存放5个数据,i外层循环变量;j内层循环变量;t为元素交换时的中间变量。 这块是数据的输入 这块是冒泡算法的实现 这块是排列好的数据的一个输出。我们来进行编译运行,没有错误。输入5个数据:21,16,25,69,8,回车,大家可以看下5个数据按照大小依次排列。 下面我们把整个程序在VC++的平台上给大家展示一下。 * 我们的例子是对五个数据进行升序排序。,请大家做一下拓展思考。如

c语言排序程序ppt,冒泡排序 ---C语言程序设计.ppt相关推荐

  1. c语言结构体冒泡排序,c语言结构体冒泡排序求教

    c语言结构体冒泡排序求教0 姜默默2点02017.05.20浏览53次分享举报 用冒泡排序输出每个学生的信息,新人求大神教学这个程序哪错了还有麻烦亲把修改过的发上来吧谢谢了for(j=0;jstu[i ...

  2. 字符串的冒泡排序c语言,c语言单链表冒泡排序_c语言字符串排序冒泡法_c语言链表排序...

    1. #include 2. 3. struct Node; 4. 5. typedef struct Node *PtrToNode; 6. typedef PtrToNode List; 7. t ...

  3. c语言数组从小到大冒泡排序,C语言冒泡排序将一个数组按照从小到大进行排序...

    例如 int a[10] = {0,5,2,3,6,9,8,7,4,1} 对其10个整数由小到大进行排序 思想: 实现一: #include int main() { int i = 0; int a ...

  4. c语言程序设计的顺序结构的常用控制语句,C语言程序设计教程-第03课-顺序结构的程序设计.ppt...

    <C语言程序设计教程-第03课-顺序结构的程序设计.ppt>由会员分享,可在线阅读,更多相关<C语言程序设计教程-第03课-顺序结构的程序设计.ppt(21页珍藏版)>请在人人 ...

  5. 击鼓传花c语言编程题,c语言-第5章 循环程序设计.ppt

    <c语言-第5章 循环程序设计.ppt>由会员分享,可在线阅读,更多相关<c语言-第5章 循环程序设计.ppt(83页珍藏版)>请在人人文库网上搜索. 1.第5章 循环程序设计 ...

  6. c语言选择结构程序设计笔记,C语言选择结构程序设计.ppt

    <C语言选择结构程序设计.ppt>由会员分享,可在线阅读,更多相关<C语言选择结构程序设计.ppt(32页珍藏版)>请在人人文库网上搜索. 1.选择结构程序设计,关系运算符和关 ...

  7. 包括循环和分支的C语言程序,《C语言程序设计》分支和循环的C程序设计.ppt

    <C语言程序设计>分支和循环的C程序设计.ppt 第三章 分支和循环的C程序设计 问题 一元二次方程根求解算法描述 3.1 程序的基本结构 ⒊循环结构Repetition ⒋复合语句 Co ...

  8. 找到指针的奇数位置 c语言,(ppt)【C语言程序设计】上机作业2010.ppt

    (ppt)[C语言程序设计]上机作业2010 <C程序设计>上机作业 上机时间: 第6周周日上午8:30~11:30, 第8.10.12周周二晚上6:50~9:50 上机地点:科A506 ...

  9. c语言中除法除以1000与1e3,北京航空航天大学C语言b第二讲(第三、四章)数据类型、运算符与表达式和最简单的C程序设计.ppt...

    <北京航空航天大学C语言b第二讲(第三.四章)数据类型.运算符与表达式和最简单的C程序设计.ppt>由会员分享,可在线阅读,更多相关<北京航空航天大学C语言b第二讲(第三.四章)数据 ...

最新文章

  1. nginx 上传 文件超时设置_Ingressnginx自定义配置文件
  2. 架构设计(2)---分布式架构的演进过程
  3. IIS目录权限设置说明
  4. C++语言基础 例程 派生类的声明与构成
  5. python中隔行输出_在Python中的分隔行上打印列表元素
  6. 函数式编程学习之路(四)
  7. 转载 网络上的8051 free IP core资源
  8. 算法:回溯十七 Combination Sum III挑选数组中规定个数元素的和为指定数
  9. 深度装机大师一键重装_电脑店U盘重装系统教程
  10. java打印sscil码_2018最新发布 |SSCI收录语言学学科期刊目录
  11. java applet介绍,Java中的Applet介绍
  12. 漫画:大鱼吃小鱼,小鱼吃虾米。小鱼为什么不能躲起来?
  13. java web 蓝牙打印_android 蓝牙打印机示例
  14. L1-030 一帮一 (15分) “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生
  15. Java--反编译软件
  16. manjaro pacman glibc 2.33 not fount
  17. 使用决策树算法评估汽车等级
  18. 首曲线、计曲线、间曲线和助曲线
  19. 微阵列数据分析(Microarray data analysis)
  20. 基于低秩张量的高光谱图像重建理论基础-基础知识学习

热门文章

  1. Cobra 快速入门 - 专为命令行程序而生
  2. 7个方法,教你写出“有质感”的文案?
  3. java web跨域拦截访问,多个域
  4. 测试应届生是去自研小公司好还是外包公司好?
  5. Hitomi-网站视频下载器,小巧,轻量又开源,支持N多网站的视频下载,可以收藏备用~
  6. 里程碑|BSV交易总量突破10亿笔
  7. linux控制终端关机命令,linux定时关机命令?linux立即关机命令?终端切换界面?windows定时关机和linux定时关机的方法(shut...
  8. 如何做好苹果产品的清洁?清洁apple产品时需要注意什么?
  9. python标准库os中用来列出指定_Python 标准库 os 中用来列出指定文件夹中的文件和子文件夹列表的方式是listdir()。_高职高专数字资源平台答案_学小易找答案...
  10. 【一天掌握CommandLine】基础入门