700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言排序程序ppt 冒泡排序 ---C语言程序设计.ppt

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

时间:2022-05-25 11:17:26

相关推荐

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

冒泡排序 ---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++的平台上给大家展示一下。 * 我们的例子是对五个数据进行升序排序。,请大家做一下拓展思考。如

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。