java 二分查詢演算法

2021-08-27 15:06:37 字數 1106 閱讀 1299

程式設計之美在於演算法之美,先來看看二分查詢的演算法:

隱藏條件:二分查詢必須是有序的,從小到大,或從大到小的排序才能進行二分查詢,下面來看看**:

package com.cn.daming;

public class mainactivity ; //排序是從小到大

int aints2 = new int; //排序是從大到小

// todo auto-generated method stub

mainactivity main = new mainactivity();

system.out.println("aints the reault is : " + main.binarysearch(aints, 0, aints.length, 24));

system.out.println("aints2 the reault is : " + main.binarysearch2(aints2, 0, aints2.length, 243));

} //從小到大的二分查詢

private int binarysearch(int a, int start, int len, int key)

if (high == start + len)

return ~(start + len);

else if (a[high] == key)

return high;

else

return ~high;

}//從大到小的二分查詢

private int binarysearch2(int a, int start, int len, int key)

if (high == start + len)

return ~(start + len);

else if (a[high] == key)

return high;

else

return ~high;}}

返回值就是返回要查的key的下標;

看結果如圖:

二分查詢演算法 java

題目 在乙個有序陣列中查詢給定值得下標 其中有兩個前提,一是順序儲存結構,二是儲存結構已經是排好序的。給定前提 int array new int int num 50 intleft 0,right array.length 1 先看看直接用迴圈的方式 int index 1 int middle...

Java演算法 二分查詢

查詢 基本查詢 陣列元素無序 從頭到尾 二分查詢 折半查詢 陣列元素有序 分析 a 定義最大索引,最小索引 b 計算出中間索引 c 拿中間索引的值和要查詢的值進行比較 相等 就直接返回當前的中間索引 不相等 大 左邊找 小 右邊找 d 重新計算中間索引 大 左邊找 max mid 1 小 右邊找 m...

java 二分查詢演算法

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。折半查詢的演算法思想是將數列按有序化 遞增或遞減 排列,查詢過程中採用跳躍式方式查詢,即先以有序數列的中點位置為比較物件,如果要找的元素值小 於該中點元素,則將待查序列縮小為左半部分,否則為右半部分。通過一次比較,將查詢區間縮小一半。折半查詢是一種高...