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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python基础:冒泡和选择排序算法实现

發(fā)布時間:2025/3/21 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础:冒泡和选择排序算法实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
冒泡排序和選擇排序 首先引用一下百度百科對于冒泡算法的定義: 冒泡排序算法的原理如下:
  • 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  • 對每一對相鄰元素做同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點,最后的元素應(yīng)該會是最大的數(shù)。
  • 針對所有的元素重復(fù)以上的步驟,除了最后一個。
  • 持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。
  • ?

    在很多計算機語言中冒泡算法都是一種經(jīng)典的排序算法,在python中也可以輕松實現(xiàn),并且代碼更短,下面看代碼:

    #冒泡排序 def bubble_sort(lt):for i in range(len(lt)-1): #外部循環(huán),用來表示冒泡進行的次數(shù)for j in range(len(lt)-i-1):#內(nèi)部循環(huán),如果從下標(biāo)為0的元素開始匹配,j下標(biāo)一直到倒數(shù)第二個元素if lt[j] > lt[j+1]:lt[j], lt[j+1] = lt[j+1], lt[j]#上面兩行代碼-如果lt列表中下標(biāo)為j的值大于下標(biāo)為j+1的值,#就調(diào)換位置,相當(dāng)于lt[j] = lt[j+1], lt[j+1] = lt[j]print(lt) #打印列表 lt = [9, 8, 6, 4, 5, 1, 3, 10] #首先建一個列表 bubble_sort(lt) #調(diào)用函數(shù)輸出經(jīng)過冒泡排序后的列表

    選擇排序:對比數(shù)組中前一個元素跟后一個元素的大小,如果后面的元素比前面的元素小則用一個變量k來記住他的位置,接著第二次比較,前面“后一個元素”現(xiàn)變成了“前一個元素”,繼續(xù)跟他的“后一個元素”進行比較如果后面的元素比他要小則用變量k記住它在數(shù)組中的位置(下標(biāo)),等到循環(huán)結(jié)束的時候,我們應(yīng)該找到了最小的那個數(shù)的下標(biāo)了,然后進行判斷,如果這個元素的下標(biāo)不是第一個元素的下標(biāo),就讓第一個元素跟他交換一下值,這樣就找到整個數(shù)組中最小的數(shù)了。然后找到數(shù)組中第二小的數(shù),讓他跟數(shù)組中第二個元素交換一下值,以此類推。

    #選擇排序 list1 = [12, 3, 6, 2, 5, 7, 8, 9] #首先定義一個列表 def quick_sort(list1):for i in range(len(list1)-1): #默認(rèn)從0下標(biāo)開始x = i #建立一個信號量for j in range(i+1, len(list1)):#從列表第i+1個元素開始if list1[x] > list1[j]:#一旦匹配到小于下標(biāo)為i的元素x = jlist1[i], list1[x] = list1[x], list1[i]#將元素賦值給信號量x,依次循環(huán),遇到更小的,繼續(xù)交換元素print(list1) quick_sort(list1)

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/ilovezzh/p/9445808.html

    總結(jié)

    以上是生活随笔為你收集整理的python基础:冒泡和选择排序算法实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。