直接插入排序就是將序列中第乙個元素作為新的有序序列,然後從第二個元素開始將其插入有序序列的合適位置,以此類推將前n-1個元素作為新的有序序列,從第n個元素開始將其插入有序序列的合適位置,直到完成序列的排序。
存在乙個序列,將其按照從小到大的順序進行排序。
第一次排序,將元素作為有序序列,元素比元素小,則將元素插入到元素前。
第二次排序,將元素作為有序序列,元素比前兩個元素都大,位置不變。
第三次排序,將元素作為有序序列,元素比元素大,比元素小,將元素插入到元素和元素之間。
第四次排序,將元素作為有序序列,元素比元素大,比元素小,將元素插入到元素和元素之間。
對乙個長度為n的序列從小到大進行排序,選取前n-1個元素作為有序序列,將第n個元素插入前n-1個元素中的合適位置作為新的有序序列。
public class insertsort ;
insertsort.sort(array);
system.out.println("排序後陣列:" + arrays.tostring(array));
}public static void sort(int a)
a[j + 1] = temp;}}
}
時間複雜度:
當序列為正序時,比較次數為cm
in=n
−1,所以直接插入排序的最好時間複雜度為o(
n)。
當序列為逆序時,比較次數為cm
ax=(
n−1)
(n−i
) ,所以直接插入排序的最壞時間複雜度為o(
n2) 。
直接插入排序的平均時間複雜度為o(
n2) 。
演算法穩定性:
直接插入排序中相同元素的前後位置不會發生改變,是一種穩定的排序演算法。
java插入排序 直接插入排序
直接插入排序演算法思路是 待排序記錄 r1,r2,rn 1,rn 第一步 將無序表打第乙個元素作為乙個有序表。第二步 將r2加入到有序表中,使有序表依舊有序 第 n 步 r1,r2,rn 1 rn 以此類推。直接插入排序演算法的時間複雜度,最好的情況是待排序記錄是有序的,o n 最壞打情況是記錄從大...
Java插入排序 直接插入排序
資料來自網路參考 插入排序 直接插入排序 author 清王 from 貴州省凱里市 date 2010 09 26 杭州 陰天有小雨 qq 997263515 希望認識每一位it朋友 public class insertsort public static void insertsort int...
Java 直接插入排序
直接插入排序就是直接將乙個數插入到有序的 序列中,對於陣列n,可你看作是兩個序列,第乙個序列是陣列的第乙個元素,第二個序列是原陣列,將第二個序列依次插入到第乙個序列中,下面實現 方法 sort方法是將乙個元素讓入到有序數列中,insertsort方法是對整個陣列的操作 public class in...