直接插入排序

2022-09-14 00:30:26 字數 504 閱讀 9386

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起直至...