Java 二分折半查詢法

2021-07-16 06:03:48 字數 763 閱讀 7589

二分折半查詢,效率比較高,每次都從範圍最中間開始比較,然後逐漸縮小範圍,二分折半查詢法的要求就是該序列在使用之前一定是要有序的,不然二分折半查詢對其沒有作用。

先分析一下折半查詢

int a=;

//在這裡我們先定義乙個陣列

然後我們查詢乙個10這個數字,第一次比較的時候,由兩邊的位置來找到中間的位置然後和中間的進行比較,中間的位置是6,10比6大,所有在右邊的範圍裡面再找乙個中間的數進行比較,右邊從6開始尋找,因為位置5的那個數字已經比較過了再比較一次沒有意義,我們找到中間位置8,在該位置上的數就9,10還是比9大,然後我們在從右邊開始找,我們再通過上面尋找的方法找到中間位置9,正好10相等,返回該數的位置。

left right middle

第一次 0 11 5

第二次 6 11 8

第三次 7 11 9

下面是實現的**

public

class test01 ;

arrays.sort(a);

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

system.out.println(binarysearch(a,6));

}public

static

intbinarysearch(int a,int searchnum)else

if(searchnum1;

}else

}return -1;

}}

二分 折半 查詢

折半查詢 又叫二分查詢,採用分治思想,適用於不經常變動且查詢頻繁的表 演算法思想 將n個元素 假設n個元素公升序 分為大致相同的兩部分,取data n 2 與目標元素m比較 若data n 2 m return n 2 若data n 2 m 則我們只要在data的左半部分繼續查詢 若data n ...

二分 折半 查詢

二分查詢 請對乙個有序陣列進行二分查詢 輸入乙個數看看該陣列是否存在此數,並且求出下 標,如果沒有就提示 沒有這個數 二分查詢演算法的思路 二分 折半 查詢條件 有序陣列。public class binarysearch 不考慮有重複元素的查詢。int index solutionsearch a...

C 二分 折半 查詢

首先,假設表中元素是按公升序排列,將表 中間位置記錄的關鍵字 與 查詢關鍵字 進行比較,如果兩者相等,則查詢成功。否則,利用 中間位置的記錄 將表分成 前後 兩個子表 1 如果 查詢關鍵字 2 如果 查詢關鍵字 中間關鍵字 後子表查詢。重複以上過程,直到查詢成功。include include us...