日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python遍历数组冒泡排序法_十种排序七种搜索算法的Python实现——气泡排序,十大,七大,查找,python,冒泡排序,bubblesort...

發布時間:2023/12/15 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。