日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php大数组查找算法,PHP简单的数组查找算法分享

發布時間:2023/12/4 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php大数组查找算法,PHP简单的数组查找算法分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP中對于數組的查找可以用順序查找或二分法查找。其中順序查找比較簡單,就是逐個比較查找。但缺點也較明顯,如果查找的元素恰巧在最后一個,循環的次數過多。

1.順序查找算法描述

在數組中逐個查找,確認是否有某個元素,存在時返回元素的位置信息。可以設置標志信息,初始值為false.找到直接輸出位置,并將標志設置為true。循環結束標志仍為false,則沒有找到。

代碼體現:$arr =[123,19,38,29,10,34];

function search($arr,$target){

// 參數:目標數組 目標元素

foreach ($arr as $key => $value) {

if($value == $target){

return $key.'
';

}

}

return false;

}

2.二分法查找算法描述

假設數組嚴格升序。如果目標元素大于中間的值,查找范圍向右側縮小一半。如果目標元素的值小于中間元素的值,查找范圍向左側縮小一半。

代碼體現:function half_search($arr,$target){

// 定義出初始的第一個,最后一個元素的下標范圍

$len = count($arr);

$left =0;

$right =$len -1;

// 循環查找

// 范圍不斷的移動 ,必須滿足一個條件

// 最左側元素的下標 小于等于右側元素的下標

while($left <= $right){

// 中間元素的下標

$middle = floor(($left + $right) /2);

// 目標元素與中間元素進行比較

if($target == $arr[$middle]){

return $middle;

}

// 如果目標元素小于中間元素

// 范圍向左縮小一半

if($target < $arr[$middle]){

$right =$middle-1 ;

}

// 如果目標元素大于中間元素

// 范圍向右縮小一半

if($target > $arr[$middle]){

$left = $middle + 1;

}

}

// 循環終止了

// 沒有找到

return false;

}

相關推薦:

總結

以上是生活随笔為你收集整理的php大数组查找算法,PHP简单的数组查找算法分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。