內部排序與外部排序簡單比較

前言

本篇文章主要介紹內部排序與外部排序的知識,如果你和我一樣還不知道內部排序和外部排序爲何物的話,不妨看看我的理解

正文

由於待排序的記錄數量不同,使得排序過程中涉及的存儲器不同,可將排序方法分爲兩大類:內部排序與外部排序。

概念

內部排序:待排序記錄存放在計算機隨機存儲器中(說簡單點,就是內存)進行的排序過程。

外部排序:待排序記錄的數量很大,以致於內存不能一次容納全部記錄,所以在排序過程中需要對外存進行訪問的排序過程。

從概念我們可以清晰的看到二者的區別

衡量效率的方法

內部排序:比較次數,也就是時間複雜度

外部排序:IO次數,也就是讀寫外存的次數

排序方法

內部排序:插入排序、快速排序、選擇排序、歸併排序、基數排序等

外部排序:

先來了解下外部排序的過程吧。

外部排序基本上由兩個相對獨立的階段組成。首先,按可用內存大小,將外存上含n個記錄的文件分成若干長度爲l的子文件或段,依次讀入內存並利用有效的內部排序方法對他們進行排序,並將排序後得到的有序子文件重新寫入外存,通常稱這些有序子文件爲歸併段;然後,對這些歸併段進行逐趟歸併,使歸併段逐漸由小至大,直至得到整個有序文件爲止。

好了,讀了上面這段文字之後,我們可以知道,第一階段就是內部排序,這個我們都知道怎麼做,那麼第二階段呢?也就是歸併的過程是怎麼實現的,常用的有兩種方法,一,多路平衡歸併;二,置換-選擇排序

結語

這篇文章主要是知識掃盲,由於我的水平有限,再加上平常主要做的是內部排序,所以對於外部排序的兩個方法沒有去深入瞭解原理,感興趣的朋友可以深入學學,永遠記住,技多不壓身!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章