python算法之冒泡排序
- 技术说明
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺秀错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。
bubbleSort.py
----------------------
冒泡排序的实现
@Copyright: Chinasoft International· ETC
@Author: xiaozhi
@date: 2019-08-03
lista = [34, 19, 20, 30, 10, 5, 88, 40]
for i in range(len(lista) -1): # 交换轮次,数的个数减1
for j in range(len(lista)-1): # 每一个轮次两个相邻的数都要比一遍
if lista[j]>lista[j+1]: # 如果这个数比它后面的数大
lista[j],lista[j+1] = lista[j+1],lista[j] # 就交换它们的位置,后移一位
pass
pass
print(lista)
以下是详细步骤:
# lista = [34, 19, 20, 30, 10, 5, 88, 40]
# # 第一轮
# [19,34,20,30,10,5,88,40]
# [19,20,34,30,10,5,88,40]
# [19,20,30,34,10,5,88,40]
# [19,20,30,10,34,5,88,40]
# [19,20,30,10,5,34,88,40]
# [19,20,30,10,5,34,40,88] # 第一次内存循环结束
#
# # 第二轮
# [19,20,30,10,5,34,40,88]
# [19,20,10,30,5,34,40,88]
# [19,10,20,30,5,34,40,88]
# [10,19,20,30,5,34,40,88] # 第二次内存循环结束
#
# # 第三轮
# [10,19,20,30,5,34,40,88]
# [10,19,20,5,30,34,40,88]
# [10,19,5,20,30,34,40,88]
# [10,5,19,20,30,34,40,88]
# [5,10,19,20,30,34,40,88] # 第三次内存循环结束
# 注意:其实每轮排序都会循环 i - 1 次,即数的个数减1,本题循环次数应为7次,
但由于有些循环没有循环7次就已经排好序了,所以将其中多余的几次没有写出来。
# 排序完成
# 排序前: lista = [34, 19, 20, 30, 10, 5, 88, 40]
# 排序后: lista = [5, 10, 19, 20, 30, 34, 40, 88]