資料結構排序之插入排序

2021-07-27 21:58:45 字數 859 閱讀 1116

package sort;

/* 最簡單的排序演算法之一是插入排序(insertion sort).插入排序由n-1躺排序組成。對於

p = 1到n -1 趟,插入排序保證從位置0到位置p上的元素為已排序狀態。插入排序利用了這樣的

事實:已知位置0到位置p - 1 上的元素處於排過序的狀態。

例子:原始陣列:34 8 64 51 32 21 移動的位置

p = 1趟之後:8 34 64 51 32 21 1

p = 2趟之後:8 34 64 51 32 21 0

p = 3趟之後:8 34 51 64 32 21 1

p = 3趟之後:8 32 34 51 64 21 3

p = 3趟之後:8 21 32 34 51 64 4

在地p趟,我們將位置p上的元素向左移動,知道他們在前p + 1

個元素中的正確位置被找到的地方。

由於每次巢狀迴圈的每乙個都花費n次迭代, 因此插入排序為0(n2),而且這個界是精確的

假如已經事先排好序的話,那麼執行時間就是0(n)為線性時間,因為第二個for迴圈並沒有生效

*/public

class

insert_sort

}public

static

void

main(string args) ;

insertionsort(a);

for(int number : a)

system.out.print(number + ",");

}}

資料結構 排序之插入排序

插入排序o n2 的執行時間 思想是 若陣列長度為n 那麼把陣列序號從1到n 1的值依次往前進行比較 這裡需要乙個for迴圈 注意每個數在比較的時候它前面的資料都是已經排好序號的 因為從序號為1時就開始排序了 注意我們這裡用類似堆中下浮和上浮的交換方法 把需要交換的資料拿出來 和前面的資料依次進行比...

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

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

資料結構之 插入排序

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