原理:每次都將陣列進行折中,取中間值mid,用中間值比對目標值,看與目標值誰大誰小,如果比目標值大則,區間就是[start, mid - 1],如果比目標值小則,查詢區間就是[mid + 1, end]。
弊端:只適合有序數列。如果無序則無效了;
public class binarysearch ;
//目標元素
int target = 8;
string result = binarysearch(a, target);
system.out.println(result);
}public static string binarysearch(int a, int target) else else
//新的中間位置
mid = ((end - start)>> 1) + start;}}
return "位置是:"+index;
}
java二分查詢
public class binarysearch int value 11 int pos binarysearch int arrays,value system.out.println the pos is pos private static int binarysearch int int...
Java二分查詢
二分查詢的陣列是有序排列的。查詢時,會首先定位到陣列的中間位置,將中間值和查詢值比較,如果相等則返回,否則,如果當前元素值小於查詢值,則繼續在陣列的後面一半查詢,如果當前元素值大於查詢值,則在陣列的前面部分查詢,直到找到目標值或者無法再二分陣列時停止。static boolean binaryser...
java 二分查詢
二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後...