這裡介紹直接插入排序(straight insertion sort),其基本操作是將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的、記錄數增1的有序表。
即我們可以假設一開始第乙個數是有序表,後面的都是無序的,插入排序的任務就是把後面的無序表乙個個插入到前面來。
顧名思義,從名稱上也可以知道它是一種插入排序的方法。我們來看直接插入排序法的**。
//輔助函式:交換兩個變數
void swap(int*a,int*p)
//插入排序
//從第1個數開始,往後開始遍歷,第i個數一定要放到使得前i個數都變成有序的。
void insertsort(int* arr,int len)
else}}
}
排序演算法3 插入排序
插入排序 insertion sort 通過對未排序的元素逐個插入已排序的合適的位置而完成排序工作,其排序流程如下 1.對陣列的前兩個元素進行排序。2.將第三個元素和前兩個已經排好序的元素進行比較,並且插入到合適的位置。3.和第二步同樣的方法對剩下的所有元素進行排序,最後便可得到按照從大到小的順序排...
排序演算法3 插入排序
該演算法維護乙個有序序列,然後把無序序列中的元素,在有序序列中從後往前進行掃瞄,找到位置後插入。從乙個元素開始,該元素可以認為已經被排序好的。在有序序列從後往前掃瞄的過程中,也要將已排序的元素逐個後移,為新插入的元素提供位置 插入排序 public class insertsort for int ...
排序演算法之插入排序
排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...