二分查詢比較次數 開發面試題之二分法插入排序

2021-10-18 02:00:11 字數 946 閱讀 1764

二分插入排序演算法是直接插入排序演算法的一種優化,比起直接插入排序演算法,在排序資料量比較大的時候,二分插入排序的速度就要遠遠高於直接插入排序。

二分插入排序通過從第二個數開始將需要排序的數分為兩個部分,左邊部分有序,右邊部分無序,然後從右邊部分第乙個數開始,乙個乙個插入前面有序部分,與直接插入排序唯一不同的是:二分插入排序會先找出左邊有序部分的中間值,然後與需要插入的值比較,所以在插入之前,就只需要與左邊有序部分的一半值進行比較。因此,在資料量比較大的時候,二分插入排序演算法就更加高效,速度更快。

所以,二分查詢排序比較次數為:x= log2n

二分查詢插入排序耗時的操作有:比較 + 後移賦值。時間複雜度如下:

1. 最好情況:查詢的位置是有序區的最後一位後面一位,則無須進行後移賦值操作,其比較次數為: log2n 。即o( log2n)

2. 最壞情況:查詢的位置是有序區的第乙個位置,則需要的比較次數為: log2n,需要的賦值操作次數為n(n-1)/2加上 (n-1) 次。即o(n^2)

3. 漸進時間複雜度(平均時間複雜度):o(n^2)

空間複雜度:o(1)

穩定性:穩定

//二分法插入排序

public static voidbininsertsort(inta);

system.out.println(arrays.tostring(a));

bininsertsort(a);

system.out.println(arrays.tostring(a));

前端開發面試題(二)

乙個200 200的div在不同解析度螢幕上下左右居中,用css實現 利用負值來實現居中。可以腦補畫面離左右都是50 剛好可以居中,但是div位置在 距左右外邊框各負50 寬度。body div1寫乙個左右布局沾滿螢幕,其中左 右兩塊定寬200,中間自適應寬,要求先載入中間塊,請寫出結構及樣式。ht...

二分查詢元素求比較次數

在順序表 中,用二分法查詢關鍵碼 20需做 次關鍵字比較。解 數值 12 15 17 20 24 30 38 43 45 51 52 下標 0 1 2 3 4 5 6 7 8 9 10 以上一共11個數,按下標則是0 10,以下按照步驟進行 1 mid left right 2 0 10 2 5 即...

面試題之二

static全域性變數與普通的全域性變數有什麼區別?static區域性變數和普通的區域性變數有什麼區別?static函式與普通的函式有什麼區別?1 全域性變數 外部變數 的書名之前再冠以static就構成了靜態的全域性變數.全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式.這兩者在...