插入排序和二分查詢

2021-09-17 21:36:57 字數 545 閱讀 7206

在插入資料時,用二分查詢法查詢資料,而不是一一比較。

意外收穫:

條件:資料從小到大,假設a[a.length]為無窮大。二分查詢時,找不到,則左右索引最後相等,目標資料會比當前索引指向的資料小

public static void insertsortwithbinarysearch(int a) 

for (int out = a.length - 1; out > 0; out--) else if (tempvalue < a[mid]) else

}int sdex = 0;

// 沒找到,這時 leftdex==rightdex is true,插入的資料一定比索引為leftdex的數小

if (leftdex == rightdex) else

for (int i = out; i < sdex; i++)

a[sdex - 1] = tempvalue;

} }

二分查詢插入排序

採用二分查詢法,找到需要插入的index,以此改進傳統的插入排序方法,如下 include include include using namespace std const int num 20000 template void initarr vector arr template void p...

二分插入排序和二分查詢

1.二分插入排序 二分插入排序其實是直接插入排序的改進,在前面已排好的佇列中,以二分查詢的形式插入待排序資料 2.二分查詢 在有序序列中查詢值是否存在,是將序列不斷分成兩部分進行查詢 下面直接貼 include 二分插入排序 void binsertsort int a,int c 此時left所在...

插入排序 簡單插入排序 二分插入排序

1 假設我們手裡的數字是一堆亂序撲克牌,我們想把它整理成從小到大的排序,會怎麼辦呢,我們會從左往右挨個將牌抽出來插到它合適的位置,這樣一輪之後,就變成從小到大的順序了。2 程式上怎麼實現,從第二位開始,逐個將後乙個數和它之前所有的資料進行比較,尋找這個數最合適的插入位置,將其插入空隙,後面的值依次會...