<?php
//演示陣列的二分查詢演算法:
//前提:
//1,索引陣列;
//2,陣列是已經排好序的了。
$arr1 = [2, 5, 8, 10, 15, 18, 22, 24, 24, 28,33, 35, 50, 55, 56, 57, 60, 61, 62, 66, 70];
$search = 18; //具體分析,可以將該資料修改為不同的值,比如:2, 5, 8,
//原理:每次都找該陣列的某一段的中間項,並跟要找的目標進行「對比」
//1,如果剛好相等,則就算找出來了
//2, 如果中間項比目標大,就只要去左邊的那一半中找
//3, 如果中間項比目標小,就只要去右邊的那一半中找
//假設有這麼乙個函式,它能夠從某個陣列$arr中的某個下標範圍($start---$end)中找指定的資料$value
//這裡,假設:$start一定是不能大於$end,否則,我們就認為找不到了!
function binary_search($arr, $value, $start, $end)
$mid = floor(($start + $end) / 2); //取得兩個下標中的中間下標(一半位置)
$mid_value = $arr[$mid]; //中間項的值
//如果剛好相等,則就算找出來了
if ($mid_value == $value) //如果中間項比目標大,就只要去左邊的那一半中找
elseif ($mid_value > $value) //
//如果中間項比目標小,就只要去右邊的那一半中找
else
}$len = count($arr1);
$result = binary_search($arr1, $search, 0, $len - 1);
var_dump($result);
陣列中的二分法查詢
二分法查詢 第一 二分法中查詢建立在排序的基礎之上。第二 二分法查詢效率要高於 乙個挨著乙個 的這種查詢方式。第三 二分查詢法原理?10 0下標 23 56 89 100 111 222 235 500 600 目標 找出600下標 0 9 2 4 中間元素的下標 arr 4 這個元素就是中間元素 ...
C 二分法查詢,遞迴二分法
用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...
python二分法查詢 Python 二分法查詢
二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...