二分查詢演算法,折半查詢,PHP的實現

2021-09-07 17:54:27 字數 720 閱讀 5618

<?php

/** 演算法要求:1,順序的儲存結構。2,按大小有序排列

** 演算法查詢過程:假設是一張公升序的表,

* 1,關鍵字與中間位置比較,相等則查詢成功。

* 2,大於中間位置,則將表對半拆,取後半段的表,然後重新對比中間位置的值。

* 3,小於中間位置,則將表對半拆,取前半段的表,然後重新對比中間位置的值。

* 4,如果中間位置與開始位置相等,則查詢失敗。

* **請註明****

*

*

*//*迴圈方式*/

function find_me($arr, $me)elseif($me>$arr[$mid])elseif($me<$arr[$mid])

/*找不到*/

if($mid==$begin)

}}/*遞迴方式*/

function find_me2($arr, $me, $begin, $end)elseif($me>$arr[$mid])elseif($me<$arr[$mid])

/*找不到*/

if($mid==$begin)

}$arr=[1,2,3,4,5,6,7,8,9];

$me=2;

var_dump(find_me($arr,$me));

var_dump(find_me($arr,$me,0,count($arr)));

PHP查詢演算法之二分查詢 折半查詢

折半查詢意為從把陣列從中間分成兩半,找到乙個中間值,然後進行判斷,首先這個陣列一定是從大到小或者從小到大排好序的。下面的 裡陣列是從小到大排序的。遞迴形式的 定義乙個從小到大排好序的陣列 arr 12 34 43 56 77 86 88 90 99 101 要查詢的數字 num 88 count c...

二分查詢 折半查詢 演算法

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。首先,假設表中元素是按公升序排列,將表中間位置記錄的 關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置 記錄將表分成前 後兩個子...

演算法 二分查詢(折半查詢)

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。使用二分查詢的條件 1.必須採用順序儲存結構。2.必須按關鍵字大小有序排列。通俗一點的說 如果資料是乙個陣列,那麼這個陣列必須是有序的 時間複雜度 o log2n 如圖所示 下面我們來看c語言 include非遞迴實現 v...