插入排序C語言實現 原始碼詳解

2021-09-28 14:04:30 字數 605 閱讀 6288

時間複雜度:o(n²)

穩定性:穩定

排序原理:

插入排序適合資料已大致有序了的場合

假定乙個初始有序數列(初始設定首元素為有序數列),後邊的元素都是待插入資料,一次插入乙個,

在有序數列中找待插入資料的位置,然後在將該位置後的有序資料後移,空出位置,然後插入。

以此類推直到所有資料插入完成。

適用場景:

資料相對有序、演算法時間要求低穩定性好的場景中,插排是乙個比較好的選擇

引數: data 排序資料

lenth 資料量

direction 排序方向 從大到小/從小到大

void

insertsort

(int

* data,

int lenth,

int direction)

} index = data[j]

;//將待插入資料拷貝出來等待 下面資料後移時會覆蓋該資料

if(i != j -1)

//不是有序資料末尾

data[i +1]

= index;}}

}

C語言實現插入排序

插入排序 我在學習一些簡單的演算法,我用文字記錄我的進步。插入排序 其實就是在待排序列中找到,沒有排序好的元素,插入的適當的位置,本文以公升序為例,簡單的講解一下。直接看下面的 include stdio.h include stdlib.h include string.h void swap i...

C語言實現插入排序

插入排序是排序演算法的一種,它不改變原有的序列 陣列 而是建立乙個新的序列,在新序列上進行操作。這裡以從小到大排序為例進行講解。插入排序的基本思想是,將元素逐個新增到已經排序好的陣列中去,同時要求,插入的元素必須在正確的位置,這樣原來排序好的陣列是仍然有序的。在實際使用中,通常是排序整個無序陣列,所...

插入排序(C 語言實現)

插入排序分為直接插入排序和折半插入排序,直接插入排序利用遍歷的方式查詢插入位置,時間複雜度為n 2,直接插入法由於不會改變相同元素的相對順序,所以直接插入排序是一種穩定的排序演算法。折半插入排序 二分插入排序 折半插入利用二分法查詢插入位置,只是減少了查詢比較的操作,所以其時間複雜度仍為n 2,二分...