气泡排序 - 1. 了解气泡排序:
最编程
2024-03-14 16:34:49
...
对冒泡排序最直观的理解就是相邻连个元素进行比较,看是否需要交换地址
并且每结束一组循环将保底结果是整理好一个数字,以整理一个升序序列为例:
然后穷尽循环最终将数组顺序整理成想要的效果
了解了冒泡排序的核心思想,接下来可以考虑那数组会循环几次呢?每次循环内部又交换了多少次?
经过冒泡排序的核心思想可得出,假设有9个元素需要排序,每次可排好一个元素,则需要8次排序便可将数组排为有序数组,由此可得出循环的次数为 (n-1)。
再解决每次循环会进行几次比较再假设有九个无序元素,第一次元素间的比较次数为8次,第二次为7次,第三次为6次,以此可得,每次循环内部会进行n-1-(循环次数)。
所以冒泡排序的核心思想就是相邻元素间的比较
推荐阅读
-
数据结构 - 八种排序(如下)、气泡排序、快速排序、陷阱排序、归一化排序
-
学习部分排序、插入排序、气泡排序和希尔排序。
-
气泡排序算法,C 语言气泡排序算法说明
-
算法概览 - "气泡排序
-
气泡排序和一些优化
-
C# 排序]气泡排序
-
气泡排序的 C++ 实现
-
Python 实现气泡排序
-
算法]气泡排序
-
气泡排序(超级详细)--升序",从小到大;另一种是 "降序",从大到小。该主题可抽象为 "按升序对 n 个数字排序 "的一般形式。 排序是一种重要的基本算法。排序的方法有很多种,但在本题中我们将使用冒泡排序法。 冒泡法的基本思想 冒泡法的基本思想是,每次比较相邻的两个数字时,较小的那个会被移到前面。如果有 5 个数字9,8,5,2,0,第一次将前两个数字 8 和 9 互换。第二次将第二个和第三个数字(9 和 5)对调......这样一共对调 4 次,得到 8-5-2-0-9 的顺序,可以看到:最大的数字 9 一直在 "下沉",成为最下面的一个数字,而小的数字 "上升" 最小的数字 "上升"。最小的数字 0 已经向上 "浮 "了一个位置。经过第一次比较(共 4 次比较和交换),得到了最大的数字 9。 然后进行第二趟比较,对剩下的前 4 个数字(8、5、2、0)进行新一轮比较,这样第二个最大的数字就 "沉到了底部"。同样,按照上述方法进行第二轮比较。经过 3 次比较和交换,我们得到了第二大数 8。 按照这个规律,我们可以推断出,比较 5 个数字需要 4 次旅行,才能将 5 个数字从小到大排列起来。在第一次旅行中,两个数字之间进行了 4 次比较,在第二次旅行中,进行了 3 次比较......在第四次旅行中,只进行了一次比较。 思路总结 总结:如果有 n 个数字,那么要进行 n-1 次比较。在第一次行程中进行 n-1 次比较,在第 i 次行程中进行 n-i 次比较。