直接插入排序(假設從小到大)
基本思想:
(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 ...