【python】排序算法的稳定性冒泡排序(画图详细讲解)
生活随笔
收集整理的這篇文章主要介紹了
【python】排序算法的稳定性冒泡排序(画图详细讲解)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、排序算法的穩定性
二、冒泡排序
a、重復比較相鄰的元素,如果前面的比后面的大,就交換它們兩個
b、每次遍歷整個數組,遍歷完成后,下一次遍歷的范圍往左縮1位
c、重復前面步驟,直到排序完成
三、代碼塊
n個數組循環n-1次
def bobbleSort(nums):n = len(nums) # 得到數組的長度for i in range(n - 1): # n個數組循環n-1次for idx in range(0, n - 1 - i):if nums[idx] > nums[idx + 1]:nums[idx], nums[idx + 1] = nums[idx + 1], nums[idx]print(nums)bobbleSort([6, 5, 4, 3, 2, 1])時間復雜度為:O(n^2);當我的數組為test=[1,2,3,4,5,6,7]時,它原本就是有序的了,不需要執行換位操作,但是第5,6行代碼還會去執行,時間復雜度也為O(n^2)
四、冒泡排序優化
代碼中加入標志flag=False,如果flag=False,那么說明本輪排序沒有進行任何變量交換,數組已經時有序的了
時間復雜度為O(1)
總結
以上是生活随笔為你收集整理的【python】排序算法的稳定性冒泡排序(画图详细讲解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python】队列——用链表实现队列操
- 下一篇: 【python】队列——用顺序表实现队列