冒泡排序python实现
生活随笔
收集整理的這篇文章主要介紹了
冒泡排序python实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
冒泡排序python實現
去年寫過一篇冒泡排序python實現,外層多了一層循環,這里更正過來~
算法思想
冒泡排序(以從小到大排序為例)的思想在于,不斷地將當前元素與后一個元素進行比較,如果當前元素較小,則調換當前元素與后一個元素的位置,否則保持不變;假設需要排序的元素一共有nnn個,在iii輪排序過程中,從第一個元素開始,跟后續的(n?i)(n-i)(n?i)元素進行上述比較(注意:上一輪排序得到的結果不需要拿到下一輪作比較)。最終的排序結果中,開頭的元素是最小值,結尾的元素是最大值。
這里是冒泡排序的動畫演示。
代碼示例
list_test = [12,-57,23,85,56,-123,-456,250]class bubsort():def __init__(self):self.list_test = list_test# 用while循環實現def bubble_v1(self):n = len(self.list_test)# 進行(n-1)趟排序while n>1:# 每趟排序從第一個元素開始,逐個與后面的元素比較i = 1while i<n:# 如果后面的元素比前面的元素小,交換兩者位置if self.list_test[i]<self.list_test[i-1]:self.list_test[i],self.list_test[i-1] = self.list_test[i-1], self.list_test[i]i+=1n-=1return self.list_test# 用for循環實現def bubble_v2(self):n = len(self.list_test)# 比較(n-1)輪for i in range(n-1):# 第i輪比較(n-i)次for j in range(n-i-1):# 如果后面的元素比前面的元素小,交換兩者位置if self.list_test[i]>self.list_test[i+1]:self.list_test[i],self.list_test[i+1] = self.list_test[i+1], self.list_test[i]return self.list_testif __name__ =='__main__':getresult = bubsort()print(getresult.bubble_v1())print(getresult.bubble_v2())總結
以上是生活随笔為你收集整理的冒泡排序python实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux环境切换python3版本
- 下一篇: python-opencv图像处理之哈里