冒泡排序是最简单的排序方法,理解起来容易。虽然它的计算步骤比较多,不是最快的,但它是最基本的,初学者一定要掌握。
冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。
以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。
比如对下面这个序列进行从小到大排序:
90 21 132 -58 34
第一轮:
比较时,每轮中第 n 次比较是新序列中第 n 个元素和第 n+1 个元素的比较(假如 n 从 1 开始)。
第二轮:
第三轮:
到此第三轮就比较完了。第三轮的结果是找到了序列中第三大的那个数,并浮到了最右边第三个位置。
第四轮:
从这个例子中还可以总结出,如果有 n 个数据,那么只需要比较 n–1 轮,因为每进行一轮排序,就能找到一个最大的数字,所以每轮比较进行n-1-i次(i为右边已经确定位置的数字个数,也就是已经进行的轮数)。
下面写一个程序:
输出结果为:0 1 2 3 4 5 6 7 8 9
冒泡排序法,思路详解
冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮...
北京航空航天大学软件工程专业考研分享?
这里着重说一下北航软件学院的报考情况和难度分析。首先,北航软件学院的学科排名是A+,专业本身非常强,但相对于北大软微和浙大的软院,北航的还算是相对好考,这是因为一是大家对北航软件学院了解不够多;二是因为北航软院有非全日制,全日制考不上可以调剂非全日制,所以考全日制的水平参差不齐,所以竞...
学习C语言需要掌握哪些基本知识?
如两个数的交换、三个数的比较、选择法排序和冒泡法排序,这就要求我们要清楚这些算法的内在含义,其中选择法排序和冒泡法排序稍难,但只要明白排序的具体过程,对代码的理解就不难了。如用选择法对10个不同整数排序(从小到大),选择法排序思路:设有10个元素a[1]~a[10],将a[1]与a[2]~a[10]比较,若a[1]...
Python培训哪里最好?
要看师资力量,老师的专业能力高低与否都决定了报班比率;要看课程内容是否专业和实用。对于学python编程的途径可以说是有两种,一种是自学,一种是到培训机构进行报名学习,python是一门编程语言,是一门可以跟计算机打交道的语言,学习python编程语言需要做的是实操而不是大量的刷题;一般python培训机构的...
数据结构:关于归并排序,如果数据数是奇数该怎么办呢?
为您推荐: 冒泡排序 数据结构归并排序特点 快速排序 堆排序 数据结构中的归并排序 数据结构 归并排序法 使用链表的归并排序 数据结构简单排序 数据结构快速排序 数据结构查找 其他类似问题2013-09-05 数据结构 归并排序 2015-08-05 编写程序统计快速排序、堆排序和归并排序的比较和移动次数 数据... ...
怎么判断自己适合学java啊?
首先对于Java ,所有功能都是通过编写代码来实现的,需要开发的人员具有很强的逻辑性和计算性。因此,如果逻辑思维能力强,学习Java仍然会有很大的优势。千锋教育就有线上免费JavaScript线上公开课。 其次。在通常的工作将花大部分时间来解决错误,因为在编写代码甚至符号写错也会导致程序错误,不能达到预期的...
有必要参加python培训班吗?
6、基本的字典操作方法。感兴趣的话点击此处,免费学习一下想了解更多有关python的相关信息,推荐咨询【达内教育】。秉承“名师出高徒、高徒拿高薪”的教学理念,是达内公司确保教学质量的重要环节。作为美国上市职业教育公司,诚信经营,拒绝虚假宣传是该机构集团的经营理念。该机构在学员报名之前完全公开所有...
Python培训线上和线下的区别
坏处呢就是大家虽然都在一个教室,不可能照顾到每一位学员的。新手的话,老师前期会给你一些特殊的照顾,但是到了中后期就不会。强的照顾,中等的有可能还照顾,但大部分都是被淘汰的。线上培训是避免了我们要去不同地方或省份去听课的旅途劳顿,为我们省下了一笔不小的开支。价格上差别也比较大。...