【基本原理】
直接插入法思想:
1.在原始資料中,將第乙個資料作為已排序的資料序列
2.從陣列中獲取下乙個元素,在已經排序好的元素中從後向前掃瞄,並判斷該元素與已排列好的的大小
3.若排序序列的元素大於新元素,則將該元素移到下一位置
4.重複步驟三,直到找到已排序的元素小於或者等於行元素的位置
5.將新元素插入到該位置
6.重複步驟2~5,直到資料處理完畢
【舉例】
待排序陣列
【38,65,97,76,13,27,49】
排序過程
第一趟插入38:【38,65,97,76,13,27,49】
第二趟插入65:【38,65,97,76,13,27,49】
第三趟插入97:【38,65,97,76,13,27,49】
第四趟插入76:【38,65,76,97,13,27,49】
第五趟插入13:【13,38,65,76,97,27,49】
第六趟插入27:【13,27,38,65,76,97,49】
第七趟插入49:【13,27,38,49,65,76,97】
【**實現】
packagecom.sort;
public
class
testinsertsort
a[j+1]=tmp; //
插入資料,因為上面的for迴圈最後執行了一次j--,所以賦值時a[j+1]
}
return
a; }
public
static
void
main(string args);
a=insertsort(a);
for(int i=0;i)
}}
排序概念與插入排序 7 1 排序 (25 分)
給定n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 直接用氣泡排序會超時,改良了一下也不行。換成了直接插入排序。一開始的 include using namespace std int main for int ...
Day7 排序 插入排序和氣泡排序
常用的排序 氣泡排序 插入排序 選擇排序 歸併排序 快速排序 計數排序 基數排序 桶排序 冒泡 插入 選擇 o n 2 基於比較 快排 歸併 o nlogn 基於比較 桶 計數 基數 o n 如何分析乙個排序演算法?排序演算法的執行效率 a.最好情況 最壞情況和平均情況的時間複雜度 b.時間複雜度的...
演算法 02 插入排序
插入排序 insertsort 如撲克牌插牌一樣,通過構建有序序列,將元素插入乙個已經排序好的序列中。插入排序是對氣泡排序的改進。插入排序同樣通過構建巢狀for的形式進行排序。for i 1 i i for j i 1 j 0 j 將a 0 看成是已經排好序的序列,所以從第2個元素 i 1 開始遍歷...