插入排序(insertion sort)通過對未排序的元素逐個插入已排序的合適的位置而完成排序工作,其排序流程如下:
1.對陣列的前兩個元素進行排序。
2.將第三個元素和前兩個已經排好序的元素進行比較,並且插入到合適的位置。
3.和第二步同樣的方法對剩下的所有元素進行排序,最後便可得到按照從大到小的順序排好陣列中的各元素。
具體過程如下:
初始資料:23 33 15 12 53
一次排序:23 33 15 12 53
二次排序:15 23 33 12 53
三次排序:1215 233353
四次排序:1215 233353
下面附詳細c語言源**:
#include#includevoid insertionsort(int *a,int len);
void main()
a[++j]=temp;
printf("%d次排序後:",i);
for(int k=0;k附執行截圖:
該程式在vc++6.0上編譯通過,執行正確,如果發現錯誤希望可以及時通知本人,大家一起學習。
排序演算法3 插入排序
該演算法維護乙個有序序列,然後把無序序列中的元素,在有序序列中從後往前進行掃瞄,找到位置後插入。從乙個元素開始,該元素可以認為已經被排序好的。在有序序列從後往前掃瞄的過程中,也要將已排序的元素逐個後移,為新插入的元素提供位置 插入排序 public class insertsort for int ...
排序演算法總結(3) 插入排序
插入排序是區域性有序的,陣列中有乙個元素被作為標記元素,標記元素的左側是有序的,右側是無序的,即標記元素是無序部分的第乙個元素。此時要求被標記元素出列,且和有序部分的第乙個元素進行比較,若標記元素小於有序部分的最大元素,則最大元素右移到標記元素的位置,標記元素和次大元素繼續比較,直到標記元素大於有序...
排序演算法 插入排序(3種)
1.直接插入排序 思想 利用有序表的插入操作進行排序 有序表的插入 將乙個記錄插入到已排好序的有序表中,從而得到乙個新的有序表 特點 穩定 空間代價 o 1 時間代價 o n 2 1 void insertsort int array,intn 2 16 此時j後面就是記錄i的正確位置,回填 17 ...