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

歡迎訪問 生活随笔!

生活随笔

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

python

python实现冒泡排序算法的非递归版本_冒泡排序以及python代码实现(递归+非递归)...

發布時間:2024/9/27 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现冒泡排序算法的非递归版本_冒泡排序以及python代码实现(递归+非递归)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、冒泡排序

比較簡單的排序算法,適合小規模數據集,效率較低。

依次比較相鄰的兩個數,將比較小的數放在前面,比較大的數放在后面。

每進行一趟排序,就會少比較一個數

python代碼(非遞歸):

from typing import List

class Solution:

def BubbleSort(self, seq: List[int]) -> List[int]:

for i in range(len(seq)): #外層循環控制內層循環的長度

for j in range(0, len(seq) - i):

try:

if seq[j] > seq[j+1]: #如果前一個元素值大于后一個元素值,交換元素

seq[j], seq[j+1] = seq[j+1], seq[j]

except:

pass

return seq

a = Solution()

ans = a.BubbleSort([3, 4, 2, 1, 5, 1])

print(ans)

python代碼(遞歸):

from typing import List

class Solution:

def BubbleSort(self, seq: List[int], bblen: int) -> List[int]:

for j in range(0, bblen):

print(bblen)

try:

if seq[j] > seq[j+1]:

seq[j], seq[j+1] = seq[j+1], seq[j]

except:

pass

bblen -= 1

if bblen <= 0: return seq

self.BubbleSort( seq, bblen)

return seq

a = Solution()

bblist = [3, 4, 2, 1, 5, 1]

ans = a.BubbleSort(bblist, len(bblist))

print(ans)

時間復雜度分析

最好的情況,也就是要排序的表本身就是有序的,那么我們比較次數,可以判斷出就是n-1次的比較,沒有數據交換,此時時間復雜度為O(n)

當最壞的情況,即待排序是逆序的情況,需要比較

次,此時時間復雜度為

總結

以上是生活随笔為你收集整理的python实现冒泡排序算法的非递归版本_冒泡排序以及python代码实现(递归+非递归)...的全部內容,希望文章能夠幫你解決所遇到的問題。

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