已知關鍵字序列為{29,75,45,17,56,45,33}請分別用插入排序、選擇排序、希爾排序、氣泡排序、快速排序對其進行排序,並寫出排序過程。
插入排序概念:插入即表示將乙個新的資料插入到乙個有序陣列中,並繼續保持有序。例如有乙個長度為n的無序陣列,進行n-1次的插入即能完成排序;第一次,陣列第1個數認為是有序的陣列,將陣列第二個元素插入僅有1個有序的陣列中;第二次,陣列前兩個元素組成有序的陣列,將陣列第三個元素插入由兩個元素構成的有序陣列中......第n-1次,陣列前n-1個元素組成有序的陣列,將陣列的第n個元素插入由n-1個元素構成的有序陣列中,則完成了整個插入排序。
插入排序過程圖:
插入排序**:
public class insertsort ;
insertsort is = new insertsort();
is.sort(arr);
for (int i = 0; i < arr.length; i++)
}// 插入排序法
public void sort(int arr)
// 將insertvalue插入到適當位置
arr[index + 1] = insertval;}}
}
演算法複雜度分析見最後排序演算法總結篇。 排序演算法之插入排序
排序演算法之插入排序 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 後時,...
排序演算法之插入排序
排序演算法之插入排序 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 後時,...
排序演算法之插入排序
本節主要分析插入排序演算法的直接插入排序和希爾 shell 排序 又稱縮小增量排序 1.直接插入排序 該排序是最簡單的排序方法,其基本思想是 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至i n為止,依次將r i 插入當前的有序區r 1....