冒泡排序python实现
生活随笔
收集整理的這篇文章主要介紹了
冒泡排序python实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
冒泡排序python實(shí)現(xiàn)
去年寫過一篇冒泡排序python實(shí)現(xiàn),外層多了一層循環(huán),這里更正過來~
算法思想
冒泡排序(以從小到大排序?yàn)槔?#xff09;的思想在于,不斷地將當(dāng)前元素與后一個(gè)元素進(jìn)行比較,如果當(dāng)前元素較小,則調(diào)換當(dāng)前元素與后一個(gè)元素的位置,否則保持不變;假設(shè)需要排序的元素一共有nnn個(gè),在iii輪排序過程中,從第一個(gè)元素開始,跟后續(xù)的(n?i)(n-i)(n?i)元素進(jìn)行上述比較(注意:上一輪排序得到的結(jié)果不需要拿到下一輪作比較)。最終的排序結(jié)果中,開頭的元素是最小值,結(jié)尾的元素是最大值。
這里是冒泡排序的動(dòng)畫演示。
代碼示例
list_test = [12,-57,23,85,56,-123,-456,250]class bubsort():def __init__(self):self.list_test = list_test# 用while循環(huán)實(shí)現(xiàn)def bubble_v1(self):n = len(self.list_test)# 進(jìn)行(n-1)趟排序while n>1:# 每趟排序從第一個(gè)元素開始,逐個(gè)與后面的元素比較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循環(huán)實(shí)現(xiàn)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())總結(jié)
以上是生活随笔為你收集整理的冒泡排序python实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux环境切换python3版本
- 下一篇: 学习难吗?从画一个点开始,从点点鼠标开始