冒泡排序 (稳定) O(n^2)
 (稳定:表示相等的数,相对位置会不会改变)
 冒泡排序(Bubble Sort)是一种简单的排序算法,它通过多次遍历待排序的元素,比较相邻两个元素的大小并交换它们,从而将最大(或最小)的元素逐步移到最后。以下是 Python 中冒泡排序的实现:
 
代码示例:
list=[1,4,3,9,8]
for i in range(0,len(list)-1):for j in range(0,len(list)-1-i):if list[j]>list[j+1]:list[j],list[j+1]=list[j+1],list[j]
print(list)
结果显示:
 
我的理解:
 冒泡排序的思想相对简单,可以通过以下方式进行简单理解:
-  比较相邻元素: 从数组的第一个元素开始,依次比较相邻的两个元素。 
-  交换元素位置: 如果前面的元素比后面的元素大(升序排序),则交换它们的位置,将较大的元素移到后面。 
-  遍历整个数组: 继续进行上述比较和交换的操作,直到遍历整个数组。 
-  一轮完成: 这样一轮的操作之后,数组中最大的元素已经被移到了最后。 
-  重复操作: 重复上述步骤,每一轮都将数组中当前未排序的最大元素移到了正确的位置。 
-  排序完成: 当数组中不再存在需要交换的元素时,排序完成。 
示例理解:
考虑数组 [64, 34, 25, 12, 22, 11, 90]:
-  第一轮: - 比较并交换 64 和 34,得到 [34, 64, 25, 12, 22, 11, 90]。
- 比较并交换 64 和 25,得到 [34, 25, 64, 12, 22, 11, 90]。
- …
- 比较并交换 11 和 90,得到 [34, 25, 12, 22, 11, 64, 90]。
 
- 比较并交换 64 和 34,得到 
-  第二轮: - …
- 比较并交换 11 和 64,得到 [34, 25, 12, 22, 11, 64, 90]。
 
-  第三轮: - …
- 比较并交换 11 和 34,得到 [25, 12, 22, 11, 34, 64, 90]。
 
-  以此类推,最终得到有序数组 [11, 12, 22, 25, 34, 64, 90]。
虽然冒泡排序的性能相对较低,但通过上述简单的比较和交换操作,我们可以将较大的元素逐步“浮”到数组的末尾,从而实现排序。