排序演算法 插入排序 二分法插入排序

2021-07-07 03:43:54 字數 686 閱讀 3043

package 插入排序;

/** * 二分法插入排序(按二分法找到合適位置插入) 【穩定】

* * 基本思想:二分法插入排序的思想和直接插入一樣,只是找合適的插入位置的方式不同,這裡是按二分法找到合適的位置,可以減少比較的次數。

*/public

class 二分法插入排序 ;

system.out.println("排序前:");

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

sort(a);// 二分法插入排序

system.out.println();

system.out.println("排序後:");

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

}public

static

void

sort(int a) else

}for (int j = i - 1; j >= left; j--)

if (left != i) }}

}

執行結果如下:

排序前:

49 38 65 97 76 13 27

排序後:

13 27 38 49 65 76 97

排序 二分法插入排序

不同點 在尋找插入位置的時候採用二分法定位。二分法怎麼定位?執行結果 原陣列 21 8 2 18 0 9 27 12 5 24 第0次迴圈排序結果 8 21 2 18 0 9 27 12 5 24 第1次迴圈排序結果 2 8 21 18 0 9 27 12 5 24 第2次迴圈排序結果 2 8 18...

二分法插入排序

二分法插入排序 演算法思想簡單描述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,如果小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。二分法沒有排序,只有查...

二分法插入排序

二分法插入排序 演算法思想簡單描寫敘述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,假設小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的全部元素後移,再把第i個元素放在目標位置上。二分法沒有排序,僅...