999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

歸并排序的概念與算法設計

2015-09-26 01:49:12鄒永林
現代計算機 2015年20期
關鍵詞:排序設計

鄒永林

(常熟理工學院計算機學院,常熟 215500)

歸并排序的概念與算法設計

鄒永林

(常熟理工學院計算機學院,常熟215500)

0 引言

歸并排序是一種重要的內部排序方法,在數據結構課程中作為一類獨特的排序方法專門進行介紹和討論。但是,其算法設計在教學實踐中常與合并排序混為一談,這在一定程度上造成了對歸并排序概念的曲解和算法設計的缺失。

本文首先分析了歸并排序與合并排序的差異,進而對標準的歸并排序算法設計進行了探討。

1 歸并排序與合并排序的差異

關于利用歸并思想進行排序的方法,英文著作中采用“Merge Sort”一詞標識,中文文獻中有兩個術語:“歸并排序”和“合并排序”,在數據結構課程中常采用前者,在算法分析課程中采用后者,但在進行算法設計與分析時,使用相同的算法代碼進行說明。

實際上,歸并排序和合并排序之間,存在著一定的差異。以下分別從算法思想和排序過程兩個方面進行討論。

1.1算法思想

在國內絕大多數數據結構著作[1-5]中,一般使用“歸并排序”一詞,且采用嚴蔚敏等的定義,即:“假設初始序列含有n個記錄,則可看成是n個有序子序列,每個子序列的長度為1,然后兩兩歸并,得到「n/2?個長度為2或1的有序子序列;再兩兩歸并,…,如此重復,直到得到一個長度為n的有序序列為止”。

而國外相關著作中,一般采用“合并排序”而非“歸并排序”的術語。Clifford A.Shaffer的定義[6]是:“合并排序是基于分治法的,它將一個數組分成兩個長度相等的子數組,為每一個子數組排序,然后再將它們合并成一個數組”。Anany Levitin的定義[7]是,“對于一個需要排序的數組A[0…n-1],合并排序把它一分為二:A[0…?n/2」-1]和A[n/?2…n」-1],并對每個子數組遞歸排序,然后把這兩個排好序的子數組合并為一個有序數組”。

從上述定義中可以看出,歸并排序和合并排序是兩個不同的概念,合并排序強調分治思想,利用一分為二的方法將一個待排序序列分成基本相等的兩個子序列,遞歸進行排序;而歸并排序更注重兩兩歸并,至于如何將一個長度為n的待排序序列分解成n個長度為1的有序子序列,沒有具體約定。

1.2排序過程

在排序過程中,根據待排序序列的長度不同,歸并排序和合并排序也有差別。

當序列長度n取2的冪次方時,歸并排序和合并排序的過程完全一致。因為此時待排序序列總能劃分為兩個相等且長度為2的冪次方的子序列。

但更一般的情況是,當n取非2的冪次方時,排序過程完全不同[2-5]。假設以一個含有11個元素的待排序序列{49,38,65,97,76,13,27,49,85,36,21}為例,排序過程分別如圖1和圖2所示。

圖1是按照合并排序思想進行排序的完整過程。可以看出,每次分區(qū)時,均以當前待排序區(qū)間的長度的一半?ni/2」進行子區(qū)間劃分,直至得到n個長度為1的子序列,然后進行兩兩合并完成排序;而在圖2中,從第四次劃分的結果開始,描述了符合歸并排序定義的過程,體現了(相鄰元素)兩兩歸并的特點,并不關心如何從一個包含n個元素的待排序序列得到n個長度為1的子序列。

根據上述分析,可以得到以下結論:合并排序和歸并排序是兩個不同的概念,其共同點是排序過程都借助2-路歸并的方法進行,其差別體現在如何從一個長度為n的序列得到n個長度為1的子序列。因此,可以認為,合并排序和歸并排序是歸并類排序的兩種不同方法,合并排序算法不能準確描述歸并排序的所有可能情況。換句話說,歸并排序的算法不能以合并排序算法完全代替。

圖1 合并排序的過程示意圖

2 歸并排序的算法設計

參照合并排序的算法,可以設計出符合標準歸并排序思想的算法。

在圖2中,合并前的分區(qū)過程描述了歸并排序借鑒合并排序的分區(qū)方法進行遞歸分區(qū)并得到符合歸并排序思想的n個長度為1的子序列的具體過程。從這個遞歸分區(qū)過程可以看出,當對一個長度為n的待排序序列進行歸并排序時,只要將每次分區(qū)的長度設置為2的冪次方即可。

對應的歸并排序的算法代碼可設計如下:

圖2 歸并排序的過程示意圖

與標準的合并排序算法相比,上述算法中專門設置了一個參數del,作為分區(qū)的基準長度,實現按照2的冪次方值的遞減序列進行遞歸分區(qū)的目的。參數del的取值可根據實際長度n計算得到,在主函數中提前確定。

對圖2中的實例利用上述算法進行排序,可得到與圖2完全一致的結果。

另外,從圖1和圖2描述的排序過程可知,對于一個包含n個元素的序列,歸并排序與合并排序的效率完全相同。

3 討論

本文通過對合并排序和歸并排序的概念和排序過程的分析,明確了兩者之間的聯系和區(qū)別,據此提出了歸并類排序的概念,并將兩者歸屬其下;然后,借鑒合并排序的算法,完成了歸并排序算法的設計,并通過實例驗證了算法的正確性。

本文的研究有助于規(guī)范和完善數據結構課程中有關歸并排序的知識體系和教學內容,也可為學習和理解歸并排序知識提供幫助。

[1]嚴蔚敏,吳偉民.數據結構(C語言版)[M].清華大學出版社,2014:283-284.

[2]胡學鋼.數據結構(C語言版)[M].高等教育出版社,2004:168-169.

[3]吳仁群.數據結構簡明教程[M].機械工業(yè)出版社,2011:193-195.

[4]周桂紅.數據結構[M].北京郵電大學出版社,2010:218-221.

[5]張曉莉,王苗,羅文劼.數據結構與算法[M].機械工業(yè)出版社,2008:245-247.

[6]Clifford A.Shaffer.數據結構與算法分析[M].電子工業(yè)出版社,1998:164-166.

[7]Anany Levitin.算法設計與分析基礎[M].清華大學出版社,2007:95-97.

Order by Merging;Sequencing by Merging;Partition;Algorithm Design

Concept and Algorithm Design of Merge Sort

ZOU Yong-lin
(School of Computer Science and Engineering,Changshu Institute of Technology,Changshu 215500)

1007-1423(2015)20-0048-04

10.3969/j.issn.1007-1423.2015.20.011

鄒永林(1963-),男,江蘇常熟人,碩士,副教授,研究方向為算法分析與設計

2015-04-21

2015-07-01

從算法思想和排序過程兩方面討論歸并排序和合并排序的區(qū)別,指出歸并排序算法不能以合并排序算法完全替代;進而借鑒合并排序算法設計符合標準的歸并排序思想的算法,并通過實例驗證算法的正確性。

歸并排序;合并排序;分區(qū);算法設計

Discusses the differences between merge sort(order by merging)and merge sort(sequencing by merging)on two aspects of algorithm thought and sorting process,points out that the algorithm of merge sort(order by merging)cannot be entirely replaced by merge sort(sequencing by merging);designs the algorithm of merge sort(order by merging)referencing the standard merge sort algorithm,takes an example to verify the correctness of the algorithm.

猜你喜歡
排序設計
排排序
排序不等式
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
恐怖排序
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
節(jié)日排序
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
主站蜘蛛池模板: 一区二区日韩国产精久久| 国产成人91精品免费网址在线| 日韩毛片在线播放| 国产SUV精品一区二区| 国产九九精品视频| 亚洲AV无码一区二区三区牲色| 亚洲欧美极品| 国产av无码日韩av无码网站| 国产福利免费观看| 国产精品制服| 欧洲极品无码一区二区三区| 国产免费人成视频网| 久久精品91麻豆| 国产超碰在线观看| a毛片免费看| 91成人在线免费观看| 亚洲成人精品久久| 日本a∨在线观看| 国产人人乐人人爱| 国产精品久久久久久久伊一| 亚洲天堂网在线播放| 日韩欧美中文字幕在线韩免费| 无码网站免费观看| 日本a级免费| 91无码视频在线观看| 日韩无码精品人妻| 色国产视频| 国产精品自在在线午夜区app| 日韩欧美中文亚洲高清在线| 亚洲国产成人超福利久久精品| 国产精品福利尤物youwu| 国产高清色视频免费看的网址| 色综合综合网| 亚洲天堂视频在线观看免费| 欧美一区国产| 日韩毛片免费| 伊人久久婷婷| 91黄视频在线观看| 这里只有精品国产| 亚洲精品自拍区在线观看| 国产美女在线免费观看| 国产成人精品高清不卡在线| 日本在线免费网站| 久久综合色天堂av| 午夜精品久久久久久久无码软件| 欧美一区二区自偷自拍视频| 在线观看精品自拍视频| 亚洲永久色| 中文字幕在线看| 成AV人片一区二区三区久久| 国产一二三区视频| 亚洲人成电影在线播放| 久久a级片| 国产成人精品一区二区秒拍1o| 欧美成a人片在线观看| 日本一区高清| 日韩 欧美 小说 综合网 另类| 久久久受www免费人成| 欧洲精品视频在线观看| 久996视频精品免费观看| 97se亚洲综合不卡 | 日本不卡在线播放| 在线精品自拍| 欧美a级完整在线观看| 欧美性猛交xxxx乱大交极品| 精品久久久无码专区中文字幕| 日韩精品成人在线| 2021国产在线视频| 欧美一区精品| 亚洲大学生视频在线播放| 亚洲视频二| 欧美一区二区三区国产精品| 这里只有精品国产| a级毛片免费看| 亚洲黄色网站视频| AV不卡无码免费一区二区三区| 成人福利视频网| 国内毛片视频| 国产激情在线视频| 国产乱子伦手机在线| 中文字幕 91| 中文字幕在线日韩91|