冒泡排序的复杂度:O(N^2)
冒泡排序的思想:每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置
比如有五个数: [36, 25, 48, 12, 25, 65, 43, 57]
, 从大到小排序, 对相邻的两位进行比较
[36, 25, 48, 12, 25, 65, 43, 57] # 原始数据
[25, 36, 48, 12, 25, 65, 43, 57]
[12, 36, 48, 25, 25, 65, 43, 57]
[12, 25, 48, 36, 25, 65, 43, 57]
[12, 25, 36, 48, 25, 65, 43, 57]
[12, 25, 25, 48, 36, 65, 43, 57]
[12, 25, 25, 36, 48, 65, 43, 57]
[12, 25, 25, 36, 43, 65, 48, 57]
[12, 25, 25, 36, 43, 48, 65, 57]
[12, 25, 25, 36, 43, 48, 57, 65]
冒泡排序原理: 每一趟只能将一个数归位, 如果有n个数进行排序,只需将n-1个数归位, 也就是说要进行n-1趟操作(已经归位的数不用再比较)
def bubble_sort(array: list) -> list:
"""冒泡排序
Example:
>>> myArray = [36, 25, 48, 12, 25, 65, 43, 57]
>>> [12, 25, 25, 36, 43, 48, 57, 65]
"""
length = len(array)
for i in range(0, length):
for j in range(i+1, length):
if array[i] > array[j]:
array[i], array[j] = array[j], array[i]
# print(array)
return array