Java 插入類排序(直接插入排序,希爾排序)

2021-08-13 10:43:00 字數 915 閱讀 3362

tags: 排序演算法

/* 直接插入排序*/

/* 結果公升序

- 從第二個元素開始,設為標記元素,放入temp中;

- 從標記位開始(前面都是排好序的),向前倒序遍歷;

- 若遍歷的值大於標記值,則將遍歷的值後移(由於標記位已經被temp快取,所以必定有空位)

- 直到遇到小於標記值得遍歷值時,將標記值放在遍歷值的後面。

*/public

class

inssort

array[j] = temp;

}return array;

}}

3.時間空間效率(最好情況為:順序排列;最壞情況為:逆序排列;)

時間複雜度:t(

n)=o

(n2)

空間複雜度:s(

n)=o

(1)

/* 希爾排序

* 直接插入排序的增強版,運用了直接插入排序的優勢。當增量d=1時,即為直接插入排序

*/public

class

shellsort

array[j+delta] = temp; //插入到尋找的位置}}

return array;

}public

int shellsort(int array,int initdelta)

return array;

}}

3.時間空間效率:

時間複雜度:t(

n)=o

(n1.5)

空間複雜度:s(

n)=o

(1)

**注意:希爾排序對於中等規模(n<=1000)的序列具有較高的效率。

希爾排序不穩定,反例**

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

插入排序 直接插入排序

直接插入排序演算法思想 將整個資料表分成左右兩個子表,其中左子表為有序表,右子表為無序表 整個排序過程就是將右子表中的元素逐個插入到左子表中,直到右子表為空,而左子表成為新的有序表。演算法過程分析 將待排序的元素存放在陣列r n 1 中,在初始狀態下,r 0 為監視哨,r 1 為有序區,r 2 r ...