亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Python中怎么實現歸并排序

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

Python中怎么實現歸并排序,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

歸并排序

歸并排序是分治策略在排序中的應用

歸并排序本質上是遞歸算法,思路是將數據表持續分裂成兩半,對兩半部分分別進行歸并排序

  • 遞歸的基本結束條件:數據表僅剩一個數據項(此時整個數據表都已經排序好了)

  • 縮小規模:將數據表分裂成相等的兩半,這樣規模就減半了,并朝著基本結束條件挺進

  • 調用自身:將兩半部分分別調用自身進行歸并排序,然后分別將排好序的兩半部分進行合并,得到排序好的數據表

Python中怎么實現歸并排序

歸并排序的具體步驟(兩個部分):

  1. 先將數據表不停的二分,分到最后只有一個數據項,不能再分了

  2. 開始進行合并,合并的時候進行排序

Python中怎么實現歸并排序

Python中怎么實現歸并排序  
 

代碼思路

  1. 利用遞歸調用不停的拆分數據表

  2. 遞歸結束后,左右兩部分數據都已經排序好了

  3. 針對左右兩部分進行逐個比對,小的提取出來放到結果列表中

    拉鏈式交錯將左右部分從小到達合并到結果列表中

  4. 最后,如果有一方清空了,則另一部分剩下的都是大數據項,且有序。直接接到結果列表后面

Python中怎么實現歸并排序

拆分的方法:數組切片

合并的方法:左右兩部分數組逐個元素比對(循環條件,左右部分都還有元素)

算法分析

歸并排序主要有兩個過程:分裂歸并

  • 分裂:O(logn) 參考二分查找

  • 歸并:O(n) 所有元素都會被比對放置一次

歸并排序的時間復雜度O(nlogn)

從時間復雜度來看,歸并排序的效率很好。但是要注意,在空間性能上,歸并排序需要額外一倍的存儲空間用于合并過程,這是一個面都大數據時的缺點

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

AI

尉犁县| 莆田市| 当涂县| 乌海市| 栾城县| 晋州市| 怀柔区| 昂仁县| 平利县| 顺平县| 富锦市| 石城县| 山西省| 曲麻莱县| 玉门市| 偃师市| 壶关县| 房产| 石棉县| 响水县| 谷城县| 陵川县| 东乌珠穆沁旗| 株洲市| 平谷区| 辉南县| 咸宁市| 黄梅县| 卫辉市| 汤阴县| 泰和县| 余江县| 泰顺县| 仙居县| 乐清市| 永济市| 陕西省| 洞口县| 吉林省| 刚察县| 汝阳县|