/*按關鍵字相等的記錄順序是否變化,分為穩定和不穩定;
*按儲存器不同分為內部排序和外部排序,外部是指數量很大,記憶體一次不能容納全部記錄,要訪問外存
*按複雜度分簡單排序、普通排序和基數排序;
*按依據的原則不同分為插入排序、交換排序、選擇排序、歸併排序和計數排序。
*排序通常需要兩種操作:比較、移動記錄。
*//* 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,直到找到已排序的元素小於或者等於新元素的位置 將新元素插入到該位...