插入排序:
也是內部排序法,想要將進行排序的元素以插入的方式找尋該元素的適當位置,達到排序的效果。
插入排序的思路:
將一組陣列看成乙個無序表和乙個有序表組成,開始的時候有序表中只有1個元素,無序表中有n-1個元素,排序過程中每次從無序表中去除乙個資料插入到有序表中去即可。
插入排序的特點:
1:排序需要陣列大小-1趟排序插入排序的時間複雜度:2:排序是直接將第一位上的陣列認為是乙個有序的表
主要是時候複雜度:用了80000個數進行排序,大約在2秒左右(這個時間是由電腦的效能有關,不一定都是這個秒數),比前面左江的冒泡和選擇排序速度要快一點,稍微高效了一點
插入排序的**如下所示:
public class insertsort ;
system.out.println("排序前的陣列:"+arrays.tostring(arr));
insertsort(arr);
system.out.println("排序後的陣列:"+arrays.tostring(arr));*/
//測試事後的時間複雜度:隨機產生80000個數
int arr = new int[80000];
for (int i = 0; i < arr.length; i++)
//將執行的時間進行前後的比較並輸出
date date1 = new date();
//將時間進行格式化:
******dateformat ******dateformat = new ******dateformat("yyyy-mm-dd hh:mm:ss");
string data1 = ******dateformat.format(date1);
system.out.println("排序前的時間是:" + data1);
//進行插入排序:
insertsort(arr);
date date2=new date();
string data2=******dateformat.format(date2);
system.out.println("排序後的時間是:"+data2);
}//插入排序:
public static void insertsort(inta){
for (int i = 1; i =0&&insertval=0:保證進行迴圈的時候不會發生越界的情況
* 2:insertval=0&&insertval=0&&insertval=0&&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....