有乙個待排序的陣列array,陣列長度為n。假設有乙個已經排好序的有序序列塊,用該序列塊對未排序的序列塊中的記錄進行逐個處理。每一步將乙個待排序的記錄和同組已經排好序的記錄進行比較,然後有序的插入到有序序列中,直到將所有的待排序的記錄全部插入為止。
package com.mahui.exercise;
public
class
sort ;
system.out.println("排序前陣列為:");
print(intarray);
insertsort(intarray);
system.out.println("排序後陣列為:");
print(intarray);
string strarray=;
system.out.println("排序前陣列為:");
print(strarray);
insertsort(strarray);
system.out.println("排序後陣列為:");
print(strarray);
float floatarray=;
system.out.println("排序前陣列為:");
print(floatarray);
insertsort(floatarray);
system.out.println("排序後陣列為:");
print(floatarray);
}/**
* 插入排序
*@param array 待排序的陣列
*/public
static
super t>> void
insertsort(t array)
array[j+1]=array[0];}}
/*** 列印輸出陣列
*@param array
*/public
static
super t>> void
print(t array)
system.out.println();}}
從**中我們可以看出,直接插入排序採用的是雙重迴圈,所以它的時間複雜度應該是o(n^2)。
本演算法中我們用陣列的0號位置儲存待排序序列中的乙個記錄,在找到正確的插入位置以後,方便將待插入資料插入,起到資料備份的作用,故空間複雜度為o(1)。
Java 直接插入排序
直接插入排序就是直接將乙個數插入到有序的 序列中,對於陣列n,可你看作是兩個序列,第乙個序列是陣列的第乙個元素,第二個序列是原陣列,將第二個序列依次插入到第乙個序列中,下面實現 方法 sort方法是將乙個元素讓入到有序數列中,insertsort方法是對整個陣列的操作 public class in...
Java 直接插入排序
直接插入排序是一種最簡單的排序演算法,在後續我會繼續發布其他的簡單排序 直接插入的演算法基本思想是 僅有乙個元素的序列總是有序的,因此,對n個記錄的序列,可從第二個元素開始直接到第n個元素,逐個向有序序列中執行插入操作,從而得到n個元素按關鍵字有序的序列。一般來說,在含有j 1個元素的有序序列中插入...
java 直接插入排序
直接插入排序是指 將乙個新記錄插入到已經排好序的列表中 他的具體操作是 如果乙個資料比它前面的資料要小,則將該資料向前移動。直接插入排序 author 半知半行 public static void straightinsertionsort int sorts else sorts pos t 測...