基本排序 直接插入排序 Java實現

2021-07-09 02:27:35 字數 984 閱讀 7014

直接插入排序就是將序列中第乙個元素作為新的有序序列,然後從第二個元素開始將其插入有序序列的合適位置,以此類推將前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...