1.插入排序是最簡單的排序演算法之一。
3 2 9 4 為初始序列,以其為例,插入排序就是以第乙個元素 3 為基準,分別把2、9、4一次插入。
第一趟排序:先插入2,與3比較,比3小,和3交換位置。結果為2、3、9、4。
第二趟排序:插入9,先和3比,比3大,位置不動。結果為2、3、9、4。
第三趟排序:插入4,先和9比較,比9小,和9交換位置,在和3比,比3大,停止。結果為2、3、4、9。
其實就是將後面的元素向之前排序好的序列中插入(第一次插入只有3乙個排序好的序列),從後往前依次比較,如果大於被比較的元素,則停止;如果小於,則交換位置,繼續比較。
**如下:
public
static
void
insertionsort(int a)
a[j] = temp;}}
分析演算法:
最壞:所有數都是逆序,由於巢狀迴圈的每乙個都花費n次迭代,因此插入排序為o(n^2)。
最好:所有數都是有序,執行時間為o(n),因為內層迴圈的檢測總是立即判斷不成立而終止。
直接插入排序java描述
插入排序演算法是乙個對少量元素進行排序的有效方法。時間複雜度o n 2 空間複雜度比較好,為o 1 演算法描述 第乙個元素認為已經是排好的。取出下乙個元素,在已經排序的元素中從後向前掃瞄。如果該元素 已排序 大於新元素,將該元素移到下一位置。重複步驟3,直到找到已排序的元素小於或者等於新元素的位置。...
插入排序(Java)
演算法思想 每趟將乙個待排序的關鍵字,按照其關鍵字值的大小插入到已經排好的部分序列的適當位置上,直到插入完成。演算法 static void insertion sort int unsorted unsorted j temp public static void main string arg ...
java插入排序
簡單的講就是把乙個數字放在一串已經排好順序的陣列中,放進去後還要使得陣列排序完整。那麼,就是1找位置,2填數字。這就是我的思路。下面是插入排序的類 package algorithm public class insertion sort return key public void display...