python遍历数组冒泡排序法_十种排序七种搜索算法的Python实现——气泡排序,十大,七大,查找,python,冒泡排序,bubblesort...
一、十大排序算法
數據準備
使用random庫隨機生成無序數組
import random
def random_list(start, end, number):
temp = []
i = 0
while i < number:
temp.append(random.randint(start,end))
i += 1
return temp
1.冒泡排序(bubble sort)
根據冒泡算法的排序原理可知,每次比較相鄰的兩個元素,根據元素的數值大小進行交換位置。具體步驟如下:
比較相鄰的元素。如果第一個比第二個大,就交換它們兩個;
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對,這樣在最后的元素應該會是最大的數;
針對所有的元素重復以上的步驟,除了最后一個;
重復步驟1~3,直到排序完成。
#冒泡排序
def bubble_sort(L):
n = len(L)
for j in range(n-1): # 比較n-1次
for i in range(n-1): # 循環比較數組中兩個相鄰元素
if L[i] > L[i+1]: # 交換位置
a = L[i]
L[i] = L[i+1]
L[i+1] = a
print("第{}步排序結果:{}".format(j, L))
return L
執行上述代碼,結果如下,我們會發現每輪排序后,總會將前面出現的最大的數移到數組的后面,使得數組從后面開始逐漸有序化。但是我們的代碼在第二次循環開始一直是比較整個數組,忽略了已經有序的數組段。
為此,我們優化一下代碼,如下:
def bubble_sort_1(L):
n = len(L)
for i in range(n-1):
for j in range(n-1-i): # 注意這里
if L[j] > L[j+1]:
L[j], L[j+1] = L[j+1], L[j]
print(L)
return L
執行結果如下,這樣每循環一次都可以縮小一次排序的范圍,可以大大提高算法的運行效率,其實這也是冒泡算法的正確做法。
總結
以上是生活随笔為你收集整理的python遍历数组冒泡排序法_十种排序七种搜索算法的Python实现——气泡排序,十大,七大,查找,python,冒泡排序,bubblesort...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ChatGPT 火遍全球,谷歌顶级 AI
- 下一篇: 徕卡 CCD 单反魔机,既能拍胶卷,也能