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