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代码实现(递归+非递归)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下进程调度模拟程序,linux
- 下一篇: amd显卡风扇调节_中端游戏显卡新晋黑马