排序演算法讀書筆記

2021-06-17 15:37:18 字數 758 閱讀 2764

/*按關鍵字相等的記錄順序是否變化,分為穩定和不穩定;

*按儲存器不同分為內部排序和外部排序,外部是指數量很大,記憶體一次不能容納全部記錄,要訪問外存

*按複雜度分簡單排序、普通排序和基數排序;

*按依據的原則不同分為插入排序、交換排序、選擇排序、歸併排序和計數排序。

*排序通常需要兩種操作:比較、移動記錄。

*//* 1>平均時間快排最佳,但快排最壞情況下為冒泡;n較大時歸併排序比堆排快,但輔助空間多。

* 2>簡單排序包括除希爾排序外所有插入排序,冒泡和簡單選擇排序。直接插入排序最簡單,基本有序或n小時最佳。

* 3>基數排序使用n大關鍵字小的情況。

* 4>穩定排序:基數排序、所有o(n^2)排序、堆排。

*//** 1.插入排序 **/

/*1.1 直接插入排序 o(n^2) 穩定                 特殊:如果原資料為從小到大為o(n)

* 將乙個記錄插入到已排好序的有序表中,從右往左比較n次,原表也移動n次。

*/void insetsort(int a)

}void shellsort(int a, int delta, int t)

}void build(int *a,int n)

void heapsort(int *a,int n)

}/** 歸併排序

* o(nlogn) o(n)的空間 同快排堆排比較最大優勢是穩定排序

**//** 基數排序

**/

演算法導論 讀書筆記 排序演算法總結

排序演算法目錄 1.插入排序 2.歸併排序 3.堆排序 4.快速排序 5.計數排序 6.基數排序 7.桶排序 一.插入排序 1.第乙個元素認為已經排好序了 2.從第二個元素開始考慮,考慮第j個元素 3.從後往前比較,前面數大於第j個元素,則往後挪乙個位置 4.挪到數小於第j個元素,或者挪完,此時因為...

《演算法導論》讀書筆記 快速排序

快速排序是最壞情況時間複雜度為o n 最優時間複雜度為o nlgn 平均時間複雜度為o nlgn 最壞情況出現在每一層劃分子問題時,分別包含了n 1個元素和0個元素,此時的時間複雜度為o n 與插入排序相同 在陣列已經有序時其時間複雜度依舊為o n 此時插入排序的時間複雜度為o n 快速排序使用了分...

演算法導論讀書筆記 插入排序

一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將新元素插入到該位...