它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
—百度百科
冒泡排序的行为是把左右依次比较,换位,实质是先寻找出最大值,放入数组末尾,再找出第二大的值放入倒数第二位,直到最小值放入第一位
def bubble_sort(lists):
# 冒泡排序
count = len(lists)
# 遍历所有数组元素
for i in range(0, count):
for j in range(i + 1, count):
if lists[i] > lists[j]:
lists[i], lists[j] = lists[j], lists[i] #交换位置
return lists
如数列74 35861
- 最大值8放在最后一位 74 35861 -> 4 73 5861-> 43 75 861-> 435 78 61-> 4357 86 1-> 43576 81-> 435761 8
- 第二大值7放在倒数第二位 74 35618-> 4 73 5618-> 43 75 618-> 435 76 18-> 4356 71 8-> 43561 78
- …4351 678
- …431 5678
- …31 45678
- 最小值放到首位 1345678
(非作者允许,严禁转载)
作者联系方式: