至此我們介紹了插入排序、(氣泡排序)、歸併排序、堆排序以及快速排序,除此之外還有基數排序,計數排序和桶排序。
其中氣泡排序效率低且沒有插入排序有代表性,就不做過多描述。
對於小規模的輸入,插入排序是一種非常快的原址排序演算法(原址指的是輸入陣列中僅有常數個元素需要在排序過程中儲存到陣列之外)。
歸併排序的效率會更高,但它採用的merge過程並不是原址的,也就是說會占用更多的空間。
堆排序是一種原址的排序演算法,使用了一種稱之為堆的資料結構(堆也能實現優先佇列),盡量掌握這種資料結構。
快速排序也是原址的,而且在實際運用過程中往往比堆排序要快,是排序大規模輸入最常用的演算法。
基數排序,計數排序和桶排序都假定我們對輸入有一定的了解,這也限定了它們的應用受到了限制,於是也不做過多介紹。
下面給以**的形式給出不同演算法的執行時間。
ps:博文只是寫出了自己對於演算法的總結方便筆者和剛入門的同志稍加了解,若需要做深入詳細的了解,必須自己去
看書和思考,另外排序演算法是必須要看懂甚至是會寫的,因為其中的思想對接下來的程式設計打下了堅實的基礎。
排序演算法總結之希爾排序
一,希爾排序演算法介紹 希爾排序又稱縮小增量排序 它本質上是乙個插入排序演算法。為什麼呢?因為,對於插入排序而言,插入排序是將當前待排序的元素與前面所有的元素比較,而希爾排序是將當前元素與前面增量位置上的元素進行比較,然後,再將該元素插入到合適位置。當一趟希爾排序完成後,處於增量位置上的元素是有序的...
常用演算法之排序演算法 總結
排序大的分類可以分為兩種 內排序和外排序。在排序過程中,全部記錄存放在記憶體,則稱為內排序,如果排序過程中需要使用外存,則稱為外排序。下面講的排序都是屬於內排序。內排序有可以分為以下幾類 1 插入排序 直接插入排序 二分法插入排序 希爾排序。2 選擇排序 簡單選擇排序 堆排序。3 交換排序 氣泡排序...
排序演算法 總結與複習
直接插入排序 穩定排序 時間複雜度 o n2 void insertsort int data,int n if j i 1 data j 1 temp view code 二分法插入排序 穩定排序 o n2 void binsort int data,int n for int j i 1 j l...