從這一篇開始,我開始複習資料結構的知識點,博文主要偏重於每個知識點的核心思想,以及**實現。這一篇先從排序演算法中的插入排序開始。
穩定排序、內排序、適合少量資料量的排序。
當輸入陣列已經排好序時,插入排序需要o(n),快排需要o(n^2)。
當輸入陣列倒序排列時,插入排序時復為:o(n^2)。
平均時間複雜度:o(n^2)。
插入排序的基本做法是:將乙個數插入到乙個已經排列好的陣列中,通過移動這個數的位置,使得插入之後的陣列也是有序的,不斷重複這個過程,使得最終所有的數都是有序的。
實現**如下:
#includeusing namespace std;
void insertsort(int a, int n)
a[j+1] = x;
} }}int main()
; insertsort(a, 6);
for(int i = 0; i< 6; i++)
cout<
排序(一)插入排序
繼插入排序 這裡說一下折半插入排序。從前面的迴圈中可以看出直接插入排序是邊比較邊移動的。這裡講的折半插入排序則是將比較和移動分開。不斷的折半查詢定位再一次性的移動元素,最終插入元素 void insertsort int a,int n else 中間元素小於要插入的元素,則在後半部分 for j ...
排序演算法(一) 插入排序
首先,對排序演算法 輸入 n 個數 輸出 序列的乙個排序,使得a1 a2 an 待排序的數為key 插入排序演算法,是乙個對少量元素進行排序的有效演算法.其偽 如圖 插入排序演算法在形式上類似於我們平時打牌時,邊抽牌邊整理撲克牌的順序,我們將新的牌與手中已經整理好順序的撲克牌進行比較,最終將抽到的牌...
排序演算法(一) 插入排序
一 插入排序 直接插入 二分插入 希爾排序 基本思想 從前面已經排序好的資料中查詢合適的位置,將待排序資料插入到該位置 從後面向前找合適的位置 1 直接插入排序 基本思想 從右向左查詢 從左邊已排序好的資料中查詢合適的位置,插入待排序的資料。private static void derictins...