每次將乙個待排序的記錄,按其關鍵字大小,插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。
根據尋找插入位置方法分為
基本思想
當插入第i(i≥1)
個物件時,前面的v[0],v[1],…,v[i−1]
已經排好序。這時,用v[i]
的排序碼與v[i−1],v[i−2],…,v[0]
的排序碼順序進行比較,找到插入位置即將v[i]
插入,原來位置上的物件向後順移。
直接插入排序圖示
從上到下,分別展示了直接排序演算法的所有可能的過程,包括相同排序碼的排序方式(保持了原來的順序,說明是穩定排序)以及in-place操作中的元素移動等。直接插入排序演算法分析
設待排序物件個數為n直接插入排序演算法的特點,則該演算法的主程式執行n−1
趟排序碼比較次數和物件移動次數與物件排序碼的初始排列有關。
直接插入排序偽**
forj=2toa.length直接插入排序c**key =a[j]
i = j-1whilei>0 and a[i]>key
a[i+1] =a[i]
i = i-1a[i+1] = key
for(j=1;j)python排序之一插入排序
首先什麼是插入排序,個人理解就是拿佇列中的乙個元素與其之前的元素一一做比較交根據大小換位置的過程好了我們先來看看 首先就是乙個無序的列表先列印它好讓排序後有對比效果,然後我後面注釋工作流程,下面我來一一說明下其執行流程,開始先宣告乙個插入排序的函式名insert sort,要傳入的引數為lis,co...
排序演算法(一) 插入排序
首先,對排序演算法 輸入 n 個數 輸出 序列的乙個排序,使得a1 a2 an 待排序的數為key 插入排序演算法,是乙個對少量元素進行排序的有效演算法.其偽 如圖 插入排序演算法在形式上類似於我們平時打牌時,邊抽牌邊整理撲克牌的順序,我們將新的牌與手中已經整理好順序的撲克牌進行比較,最終將抽到的牌...
排序演算法(一) 插入排序
一 插入排序 直接插入 二分插入 希爾排序 基本思想 從前面已經排序好的資料中查詢合適的位置,將待排序資料插入到該位置 從後面向前找合適的位置 1 直接插入排序 基本思想 從右向左查詢 從左邊已排序好的資料中查詢合適的位置,插入待排序的資料。private static void derictins...