第乙個數前邊沒有數字,不用排,相當於已經排好序了,然後第二個數插進前邊,第三個數在插進前邊,如果待插入的元素與有序數列裡相等,則插到那個數的後面
時間複雜度:
最好是o(n),
最壞的是o(n的平方)
空間複雜度:o(1)
穩定性:穩定
void
insertionsort
(int arr,
int len)
arr[j+1]
=tmp;
//後面的數比前面的數大,則就在前邊了}}
intmain()
;//定義陣列和得到長度
int len=
(int
)sizeof
(arr)
/sizeof
(*arr)
;seletionsort
(arr,len)
;//傳入陣列和長度
int i;
//函式做完後開始遍歷輸出
for(i=
0;i)return0;
}
插入排序 InsertionSort
插入排序insertionsort,引數是乙個陣列包含了n個待排序的數,輸入的各個數字是原地排序的 sorted in place 意即這些數字就是在陣列a中進行重新排序的,在任何時刻,至多只有其中的常數個數字是儲存在陣列之外的,當過程insertionsort執行完畢後,輸入陣列a中就包含了已排好...
插入排序 insertion sort
insertion sort 插入排序 適用於小規模的資料排序 時間複雜度 n 2 整體思路與玩牌是對手中撲克的排序方法類似 演算法描述 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,...
插入排序 Insertion sort
是一種簡單的排序方法。時間複雜度為o n 2 即n的平方。在資料量較小的情況下,是比較有效的排序方式。輸入 n個數 a1,a2,a3.an 輸出 輸入序列的乙個排序 要求 a 1 a 2 a n 思想 把序列分為2部分 已排序,未排序。每次從未排序中取乙個數,與已排序中的值比較,插入到合適的位置。p...