1、演算法思想:將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的、記錄數增加1的有序表。
假設待排序的資料是陣列a[1….n]。初始時,a[1]自成1個有序區,無序區為a[2….n]。在排序的過程中,依次將a[i] (i=2,3,….,n)從後往前插入到前面已排好序的子陣列a[1,…,i-1]中的適當位置,當所有的a[i] 插入完畢,陣列a中就包含了已排好序的輸出序列。
2、**實現:
public void sort(int list,int size)
list[j] = temp ;
break; //插入後退出迴圈(記得已經找到並插入後要退出)}}
}}3、複雜度分析:1.當要排序的表本身就是有序的,則沒有移動記錄,時間複雜度為o(n)2.當要排序的表是逆序時,需要比較n+n-1+...+2=(n+2)(n+1)/2次,如果排序記錄是隨機的,根據概率相同原則,則平均比較和移動次數約為n^2/4次。因此,直接插入排序法的時間複雜度為o(n^2).
直接插入排序
直接插入排序是一種最簡單的排序方法,它的基本思想是依次將每個記錄插入到乙個有序中去。就是說,第i i 1 遍整理時,a1,a2,ai 1已經是排好序的子串行 取出第i個元素ai,在已排好序的子串行為ai找到乙個合適的位置,並將它插到該位置上。易知上述排序當i 1時實際上為空操作,故可直接從i 2開始...
直接插入排序
直接插入排序的演算法思想 直接插入排序 straight insertion sort 的基本操作是將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的 記錄數增 1 的有序表。根據該思想,編寫 如下 從已有序列的第0個記錄開始比較 public static void insertsort1 i...
直接插入排序
源文章url http student.zjzk.cn course ware data structure web paixu paixu8.2.1.1.htm 做過部分修改。1 基本思想 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至...