資料結構之插入排序(java)

2021-08-13 05:47:22 字數 1072 閱讀 1520

演算法描述:

直接插入排序(straight insertion sort)的基本思想是:把n個待排序的元素看成為乙個有序表和乙個無序表。開始時有序表中只包含1個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第乙個元素,將它插入到有序表中的適當位置,使之成為新的有序表,重複n-1次可完成排序過程。

演算法分析:

時間複雜度:o(n^2)

空間複雜度:o(1)

插入排序可以做到穩定性

舉例說明:

給  5 4 3 2 1排序:

i=1 && j=0:4 5 3 2 1

i=2 && j=1 : 4 3 5 2 1

i=2 && j=0 : 3 4 5 2 1

i=3 && j=2 : 3 4 2 5 1

i=3 && j=1 : 3 2 4 5 1

i=3 && j=0 : 2 3 4 5 1

i=4 && j=3 : 2 3 4 1 5

i=4 && j=2 : 2 3 1 4 5

i=4 && j=1 : 2 1 3 4 5

i=4 && j=0 : 1 2 3 4 5

code:

public class insertionsort 

for (int i = 1; i < arr.length; i++)

} }public static void swap(int arr, int i, int j)

public static void printarray(int arr)

for (int i = 0; i < arr.length; i++)

system.out.println();

} public static void main(string args) ;

insertionsort(arr);

printarray(arr);

}}

資料結構之插入排序 折半插入排序

排序思路 通過折半查詢的方式找到合適的插入位置再插入。演算法實現 public class biinsertsort else 插入點在 mid 1,right left mid 1 直到找到合適的位置 left或right 1 接下來就將left right 1後的元素後移 for int j i...

資料結構之 插入排序

包括 直接插入排序,二分插入排序 又稱折半插入排序 鍊錶插入排序,希爾排序 又稱縮小增量排序 假定這個陣列的序是排好的,然後從頭往後,如果有數比當前外層元素的值大,則將這個數的位置往後挪,直到當前外層元素的值大於或等於它前面的位置為止.這具演算法在排完前k個數之後,可以保證a 1 k 是區域性有序的...

資料結構之插入排序

插入排序有,直接插入排序 折半插入排序 2 路插入排序和表排序。如果了解了這些排序的思路,那麼 也就容易理解了。直接插入排序思路是 把第乙個當做已排好序的,直接從第二個開始記為當前資料 當前資料需要儲存到a 0 把a 0 當做乙個哨子 然後用當前資料跟前面的資料比下去,大於當前資料的數都往後移一位。...