* @date 2017/8/23 * @license MIT * ------------------------------------------------------------- * æè·¯åæï¼æ°ç»ä¸é´çå¼floor((low+top)/2) * ------------------------------------------------------------- * éå¤ç¬¬äºæ¥æä½ç´è³æ¾åºç®æ æ°å */ /** * QuickQuery * * @param $array * @param $k * @param int $low * @param int $high * @return int */ function QuickQuery($array, $k, $low = 0, $high = 0) { //夿æ¯å¦ä¸ºç¬¬ä¸æ¬¡è°ç¨ if (count($array) != 0 and $high == 0) { $high = count($array); } //妿è¿åå¨å©ä½çæ°ç»å ç´ if ($low <= $high) { //å$lowå$highçä¸é´å¼ $mid = intval(($low + $high) / 2); //妿æ¾å°åè¿å if ($array[$mid] == $k) { return $mid; } else if ($k < $array[$mid]) {//å¦ææ²¡ææ¾å°ï¼åç»§ç»æ¥æ¾ return QuickQuery($array, $k, $low, $mid - 1); } else { return QuickQuery($array, $k, $mid + 1, $high); } } return -1; } echo QuickQuery([4, 5, 7, 8, 9, 10, 8], 8);