【C++信息學(xué)奧賽培訓】數據排序之歸并排序(MergeSort)詳解以及實例解析

2021-04-10 05:36:57

資訊專題 / C++信息學(xué)奧賽培訓 00

一、歸并排序算法介紹:

歸并排序(Merge sort)是建立在歸并操作上的一種(zhǒng)有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。

作爲一種(zhǒng)典型的分而治之思想的算法應用,歸并排序的實現由兩(liǎng)種(zhǒng)方法:

1.自上而下的遞歸(所有遞歸的方法都(dōu)可以用叠代重寫,所以就(jiù)有了第 2 種(zhǒng)方法);

2.自下而上的叠代;

和選擇排序一樣,歸并排序的性能(néng)不受輸入數據的影響,但表現比選擇排序好(hǎo)的多,因爲始終都(dōu)是 O(nlogn) 的時(shí)間複雜度。代價是需要額外的内存空間。

二、歸并排序算法步驟:

1.申請空間,使其大小爲兩(liǎng)個已經(jīng)排序序列之和,該空間用來存放合并後(hòu)的序列;

2.設定兩(liǎng)個指針,最初位置分别爲兩(liǎng)個已經(jīng)排序序列的起(qǐ)始位置;

3.比較兩(liǎng)個指針所指向(xiàng)的元素,選擇相對(duì)小的元素放入到合并空間,并移動指針到下一位置;

4.重複步驟 3 直到某一指針達到序列尾;

5.將(jiāng)另一序列剩下的所有元素直接複制到合并序列尾。

三、歸并排序算法可視化演示:

C++信息學(xué)奧賽數據排序歸并排序算法可視化演示

四、歸并排序算法實例解析(信息學(xué)奧賽一本通例題)

來源:淄博信息學(xué)奧賽培訓 / 編輯:NOIP/NOI輔導

上一篇:沒(méi)有了

下一篇:【C++信息學(xué)奧賽培訓】數據排序之桶排序(BucketSort)詳解以及實例解析

返回列表

延展閱讀

更多相關案例,更多借鑒,更多優化!

16年時(shí)間,圻谷深入100多個細分行業,從建築、建材、裝修、到工程、服飾、電子電器...資深的行業産品營銷經(jīng)驗與專業的推廣運營能(néng)力,給您更好(hǎo)保障!

文章點評

點評文章,寫評論得積分,赢禮品!

  • 暫無【C++信息學(xué)奧賽培訓】數據排序之歸并排序(MergeSort)詳解以及實例解析點評 + 登錄後(hòu)點評
  • Contact Us

    多一份參考,總有益處。

    聯系QIGOO,免費獲得專屬《策劃方案》及報價。

    走過(guò)十六年曆程的互聯網整合營銷機構,以技術與思想,提升您網站的廣度傳播與深度。

    咨詢問題或預約面(miàn)談,可以通過(guò)以下方式聯系我們。

    網站首頁

    圻谷案例

    建站方案

    網站建設

    電商平台

    系統開(kāi)發(fā)

    資訊專題

    了解圻谷

    聯系圻谷

    淄博網站建設微信

    關于我們 | 聯系我們

    © 2019 圻谷網絡 All Rights Reserved.

    技術支持:圻谷網絡

    關注圻谷網絡獲得全面(miàn)的咨詢服務!
    淄博營銷型網站建設
    微信号:15589330185