直接插入排序1

2022-09-02 02:24:11 字數 719 閱讀 3347

直接插入排序(straight insertion sort)的基本思想是:

把n個待排序的元素看成為乙個有序表和乙個無序表。開始時有序表中只包含1個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第乙個元素,將它插入到有序表中的適當位置,使之成為新的有序表,重複n-1次可完成排序過程。

插入排序**說明

下面選取直接插入排序的乙個中間過程對其進行說明。假設中的前3個數已經排列過,是有序的了;接下來對10進行排列。示意圖如下:

圖中將數列分為有序區和無序區。我們需要做的工作只有兩個:(1)取出無序區中的第1個數,並找出它在有序區對應的位置。(2)將無序區的資料插入到有序區;若有必要的話,則對有序區中的相關資料進行移位。看,是不是很簡單。

void insert_sort(int a, int

n) }

}

時間複雜度和穩定性

直接插入排序的時間複雜度是o(n2):假設被排序的數列中有n個數,遍歷一趟時間複雜度是o(n),需遍歷多少次呢?n-1次,因此,其時間複雜度是o(n2)。

直接插入排序是穩定的演算法,它滿足穩定演算法的定義:假設在數列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面;並且排序之後,a[i]仍然在a[j]前面。則這個排序演算法是穩定的!

插入排序 1 直接插入排序

插入排序 插入排序的演算法思想是 在乙個有序 的元素序列中,不斷地將新元素插入到該已經有序的元素序列中的合適位置,直到所有元素都插入到合適位置則完成排序。直接插入排序 假設待排序的元素有n個,對應的元素分別是a1,a2,a3,a4.因為第乙個元素是有序的,所以從第二個元素開始,將a2與a1進行比較。...

1 直接插入排序 插入排序

直接插入排序 straight insertion sort 是一種最簡單的排序方法,它的基本操作是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的 記錄數增1的有序表。排序過程如下 參考自嚴蔚敏的資料結構 c語言版 思想是第一次將第乙個元素當作有序組,每次後面的元素插入到有序組中使其任然有序,...

排序 1 直接插入排序

再談直接插入排序之前首先來談談什麼是排序?2 穩定排序與不穩定排序 假設 ki kj 且排序前序列中 ri 領先於 rj 若在排序後的序列中 ri 仍領先於 rj 則稱排序方法是穩定的。若在排序後的序列中 rj 仍領先於 ri 則稱排序方法是不穩定的。3 演算法的複雜性 體現在執行該演算法時的計算機...