1 資料結構與演算法 插入排序法

2021-07-22 11:32:22 字數 682 閱讀 3526

插入排序演算法分為 直接插入排序法與希爾排序演算法。下面看看這兩種演算法的**實現和複雜度對比。

1、直接插入排序法(straight insertion sort)

直接插入排序的基本操作是在排序剛開始的時候,把第乙個元素當做是排序的記錄,當依次插入後面的元素的時候,就獲得其插入的位置,然後形成乙個新的有序表。

package com.sort.exe;

import org.junit.test;

/** * 過程:57 59 68 52進行排序:

* i=3:temp=52

* ①j=i-1=2:68>52,68往前移一位:57 59 68 68

* ②j--: 59>52,59往前移一位:57 59 59 68

* ③j--: 57>52,52往前移一位,57 57 59 68

* ④temp放在最後的位置:52 57 59 68

* @author wgs

*/public class insertsort2

arrs[j + inc] = temp;

}

} while (inc > 1);

}

演算法複雜度

o(n3/2) - 優於直接插入排序法。

資料結構 演算法 插入排序 希爾排序法

資料結構 演算法 插入排序 希爾排序法 希爾排序法基本思想 希爾排序 shell sort 又稱為 縮小增量排序 是1959年由d.l.shell提出來的。該方法的基本思想是 先將整個待排元素序列分割成若干個子串行 由相隔某 個 增量 的元素組成的 分別進行直接插入排序,然後依次縮減增量再進行排序,...

資料結構與演算法 插入排序

將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料 插入排序分為兩種 直接插入排序和希爾排序 插入排序與打撲克時整理手上的牌非常類似。摸來的第1張牌無須整理,此後每次從桌上的牌 無序區 中摸最上面的1張並插入左手的牌 有序區 中正確的位置上。為了找到這個正確的位置,須自左向...

演算法與資料結構 插入排序

例如 給定乙個無序陣列int arr n代表集合陣列的長度,給出乙個演算法將陣列arr按照從小到大的順序進行排列。插入排序 看當前位置i的值是否比它前乙個數小,如果小就與前面的數交換位置。public static void insertionsort int arr,int n public st...