91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

麻栗坡县| 乌兰察布市| 黑龙江省| 莱芜市| 忻州市| 五河县| 化州市| 田东县| 江川县| 白朗县| 兴安县| 高密市| 威海市| 邯郸市| 安化县| 乌拉特前旗| 阿尔山市| 棋牌| 长垣县| 通榆县| 盈江县| 丹阳市| 华坪县| 托克托县| 林周县| 巨鹿县| 泰安市| 阆中市| 湘西| 绥棱县| 克山县| 江西省| 古田县| 上饶县| 宁德市| 广东省| 遂平县| 枣庄市| 康保县| 东莞市| 南陵县|