中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么實現冒泡排序

發布時間:2021-07-02 16:04:03 來源:億速云 閱讀:168 作者:Leah 欄目:大數據

本篇文章給大家分享的是有關Python中怎么實現冒泡排序,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

冒泡排序(Bubble Sort)

冒泡排序算法:對無序表進行多趟地比較交換

每一趟對列表兩兩相鄰元素進行比較,大的往后放,這樣在所有元素比較完之后,當前列表的最大項就放到了末尾。然后再對前n-1個數據項進行冒泡排序……最終進行n-1趟冒泡排序,整個列表就排序完成(類似于“氣泡”上浮過程)

Python中怎么實現冒泡排序

1. 第一趟冒泡:共有n-1對相鄰數據進行比較交換

2. 第二趟冒泡:前面的n-1個數據項進行比較交換,共有n-2對相鄰數據項進行比較交換

……

3. 直到第n-1趟冒泡排序:最小項一定就在列表的首位

故總共要進行n-1趟冒泡排序

第幾趟
比對次數
第1趟n-1
第2趟
n-2
第3趟
n-3
……
……
第n-1趟
1

每進行一次冒泡排序后,就少了一個待比較元素。冒泡排序可不會從0次開始,是從1次開始到n-1次。最后一次冒泡只有兩個元素,比較交換后就直接可以結束了

Python中怎么實現冒泡排序

Python中怎么實現冒泡排序

Python中怎么實現冒泡排序  
 

冒泡排序算法分析

對于冒泡排序而言,無論無序表中數據項如何排列,算法過程總是需要進行n-1趟冒泡排序。隨著趟數增加,比對次數從n-1次減少到1次,故比對次數是1+2+3+……+n-1

(1/2)*n^2 - (1/2)*n

比對時間復雜度:O(n^2)

交換次數最好情況:交換次數為0(已經排序好了)

交換次數最壞情況:交換次數n-1次(每次比較都要交換)

交換時間復雜度:O(n^2)

故冒泡排序算法的時間復雜度:O(n^2)

Python中怎么實現冒泡排序  

小結:冒泡排序算法是時間復雜度比較差的一類算法,但有一點優勢——冒泡排序不占任何額外存儲空間

Python中怎么實現冒泡排序  
 

冒泡排序——改進

前言:雖然做了改進,但依然沒有改變其時間復雜度Python中怎么實現冒泡排序Python中怎么實現冒泡排序Python中怎么實現冒泡排序

冒泡排序性能的缺陷在于:無論是否需要交換,都要進行比較。其實很多時候這樣的比較是無意義的

若在某一趟冒泡排序中沒有發生任何交換意味著什么?意味著已經排序好了,不用再進行后面的冒泡排序了。反之,只要進行了一次交換,則后面就要再進行一次冒泡排序

Python中怎么實現冒泡排序

以上就是Python中怎么實現冒泡排序,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凌海市| 登封市| 怀柔区| 河池市| 曲周县| 巴马| 长兴县| 天门市| 紫金县| 湖南省| 电白县| 邻水| 德清县| 丹东市| 鹤庆县| 清涧县| 宜州市| 大石桥市| 松桃| 安福县| 新闻| 东源县| 凯里市| 哈尔滨市| 晋宁县| 永济市| 绥宁县| 雷波县| 城步| 大名县| 乐清市| 平度市| 日土县| 柞水县| 邢台市| 苗栗县| 房山区| 香港| 隆子县| 潞西市| 那曲县|