常用排序演算法 插入排序

2021-06-17 18:36:53 字數 535 閱讀 8583

直接插入排序(假設從小到大)

基本思想:

(1)從第2個數開始,與第1個數比較,若小於第乙個數則交換,這樣前兩個數已排序好;

(2)第三個數與第二個數比較,選擇交換或不交換,然後第二個數再與第乙個比較,選擇交換或不交換;

(3)以此類推,把當前數插入到之前已排序的序列中,直到處理完最後乙個數為止;

時間複雜度:o(n^2)

空間複雜度:原地排序o(1)

穩定性:穩定

適用情況:對資料的有序性比較敏感的演算法,適用於對已基本有序的序列排序。

實現**(c語言)

#include#includevoid insertsort(int a,int len)

} }}void showarray(int a,int len)

int main()

; showarray(a,8);

insertsort(a,8);

showarray(a,8);

return 0;

}

常用排序演算法 插入排序

插入排序 插入排序是假設數列已經按順序排列,反覆將每乙個元素插入,如果待插入資料比所有元素大,就直接放到最後 如果比前置元素小,前置元素後移,直至遇到比待插入小的位置。初始狀態,假設數列只有乙個元素33 第一步將6插入 6比33小 33後移,6插入到33前面 第二步將 5插入 5 比33小 33後移...

常用排序演算法 1 插入排序

插入演算法 基本插入 把要排序的數列分層兩部分 第一部分包含了數列除最後乙個元素外的所有元素,而第二部分僅包含數列的最後乙個元素,再把這個最後元素插入到此刻已經是有序的第一部分裡的正確位置,保證插入後數列的有序性。時間複雜度最好為o n 最壞o n 2 平均o n 2 空間複雜度o 1 插入排序包括...

常用排序演算法 插入排序解讀

常用的排序演算法有氣泡排序,快速排序,選擇排序,插入排序等,從效率上來講氣泡排序和選擇排序一般,10萬隨機數排序經測試,快速排序和插入排序毫秒級別,且效率比冒泡和選擇排序快百倍。這裡重要分析下如何寫出高效的插入排序 插入排序的思路 從小到大 1 認為n 1時陣列是已排序的 2 從i 2開始 i 2 ...