Java排序演算法 直接插入排序

2021-08-09 06:30:52 字數 700 閱讀 1958

基本思想:

直接插入排序的基本操作是將乙個記錄插入到已經排好的有序表中,從而得到乙個新的、記錄數增1的有序表。對於給定的一組記錄,初始時假定第乙個記錄自成乙個有序序列,其餘記錄為無序序列。接著從第二個記錄開始,按照記錄的大小依次將當前處理的記錄插入到其之前的有序序列中,直到最後乙個記錄插到有序序列中為止

複雜度:

當最好的情況,也就是要排序的表本身就是有序的,此時只有資料比較,沒有資料移動,時間複雜度為o(n)。

當最壞的情況,即待排序的表是逆序的情況,此時需要比較次數為:2+3+…+n=(n+2)(n-1)/2 次,而記錄移動的最大值也達到了 (n+4)(n-1)/2 次.

如果排序記錄是隨機的,那麼根據概率相同的原則,平均比較和移動次數約為次

演算法描述:

對乙個有n個元素的資料序列,排序需要進行n-1趟插入操作:

第1趟插入,將第2個元素插入前面的有序子串行--此時前面只有乙個元素,當然是有序的。

第2趟插入,將第3個元素插入前面的有序子串行,前面2個元素是有序的。

第n-1趟插入,將第n個元素插入前面的有序子串行,前面n-1個元素是有序的。

**實現:

public static void insertsort(int array)

{int insertnode,j;

for(int i = 1; i =0 && insertnode

參考:

java演算法 直接插入排序

話不多說,直接上 package sort public class sorttest seqlist seqlist new seqlist 20 for int i 0 i d.length i seqlist.display seqlist.insertsort seqlist.insert ...

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...