最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP查找一列有序數組是否包含某值的方法

 更新時間:2020年02月07日 08:51:30   作者:藏色散人  
在本篇文章里小編給大家整理了關于PHP查找一列有序數組是否包含某值的方法,有需要的朋友們可以參考下。

問題:對于一列有序數組,如何判斷給出的一個值,該值是否存在于數組。

思路:判斷是否存在,最簡單是,直接循環(huán)該數組,對每一個值進行比較。但是對于有序數組來說,這樣寫就完全沒有利用好“有序”這一特點。

所有我們使用到“二分法查找”,

//有序數組為

$arr = array(2,5,66,87,954,1452,5865);

//查找值

$str = 1452;

//我們先定義 三個參數

$front = 0;//一個開始值下標

$end = count($arr) - 1;//一個結束值下標

$mid = intval(($front + $end) / 2);//中間值下標

1、第一次比較,我們直接判斷查找值str是否等于中間值mid,如果等于 直接返回 true;

2、如果查找值str大于中間值mid,則說明查找值str可能在中間值的右邊,即對開始值front需重新賦值 = 中間值mid + 1,結束值end不用變,依次中間值mid為新的開始值 + 結束值;

3、如果查找值str小于中間值mid,則說明查找值str可能在中間值的左邊,即開始值不用變,結束值end需重新賦值 = 中間值 - 1,依次中間值mid為開始值 + 新的結束值;

-----如上,對于傳入的開始值,結束值,中間值,進行比較。一旦開始值 大于 結束值 則說明沒有找到,結束查詢,反之等于就返回已找到。

具體代碼如下:

$str = 89;//查找值

$arr = [1,55,66,89,420];//有序數組

$ren = find($arr, $str);

echo '<pre>';

var_dump($ren);

function find($arr, $str){

 $front = 0;//開始下標

 $end = count($arr) - 1;//結束下標

 while($front <= $end){//結束值 大于 開始值 ,反之則退出

  $mid = intval(($front + $end) / 2);//中間值下標

  if($str == $arr[$mid]){

   return $mid;//存在直接返回值的下標

  }

  if($str > $arr[$mid]){

   $front = $mid + 1;//在前面

  }

  if($str < $arr[$mid]){

   $end = $mid - 1;//在后面

  }

 }

 return false;

}

返回結果:89為第四個元素值下標3

int(3)

以上就是PHP查找一列有序數組是否包含某值(二分查找)的詳細內容,如果有任何補充可以聯(lián)系腳本之家小編。

相關文章

  • PHP基于回溯算法解決n皇后問題的方法示例

    PHP基于回溯算法解決n皇后問題的方法示例

    這篇文章主要介紹了PHP基于回溯算法解決n皇后問題的方法,結合實例形式分析了PHP基于回溯算法解決N皇后問題的原理與具體實現技巧,需要的朋友可以參考下
    2017-11-11
  • 在JavaScript中調用php程序

    在JavaScript中調用php程序

    在js中調用php,返回不同值。
    2009-03-03
  • yii 2.0中表單小部件的使用方法示例

    yii 2.0中表單小部件的使用方法示例

    這篇文章主要給大家介紹了關于yii 2.0中表單小部件的使用方法,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • ezSQL PHP數據庫操作類庫

    ezSQL PHP數據庫操作類庫

    WordPress 使用的數據庫操作類就是它 -- ezSQL 我用了好多年了,我特別喜歡它的幾個類方法,可以有效提高代碼簡潔度。
    2010-05-05
  • php中WebSocket的簡單使用示例詳解

    php中WebSocket的簡單使用示例詳解

    這篇文章主要為大家詳細介紹了php中WebSocket的簡單使用的相關知識,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11
  • php自動提交表單的方法(基于fsockopen與curl)

    php自動提交表單的方法(基于fsockopen與curl)

    這篇文章主要介紹了php自動提交表單的方法,結合實例形式分析了php基于fsockopen與curl兩種實現技巧,需要的朋友可以參考下
    2016-05-05
  • php訪問對象中的成員的實例方法

    php訪問對象中的成員的實例方法

    在本篇文章里小編給大家整理了一篇關于php訪問對象中的成員的實例方法,有需要的朋友們可以跟著學習參考下。
    2021-10-10
  • Thinkphp框架開發(fā)移動端接口(2)

    Thinkphp框架開發(fā)移動端接口(2)

    這篇文章主要介紹了thinkphp框架開發(fā)移動端接口的第2種方法,實現移動端訪問自動切換移動主題模板,從而實現偽app訪問,感興趣的小伙伴們可以參考一下
    2016-08-08
  • THINKPHP跨域報錯的解決方案

    THINKPHP跨域報錯的解決方案

    這篇文章主要介紹了THINKPHP跨域報錯has been blocked by CORS policy: Response to preflight request doesn't pass access control check的解決方案,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • PHP批量獲取網頁中所有固定種子鏈接的方法

    PHP批量獲取網頁中所有固定種子鏈接的方法

    這篇文章主要介紹了PHP批量獲取網頁中所有固定種子鏈接的方法,涉及php字符串與文件操作的相關技巧,需要的朋友可以參考下
    2016-11-11

最新評論

乌审旗| 东城区| 达拉特旗| 巨野县| 祁连县| 新建县| 贞丰县| 北宁市| 万安县| 曲靖市| 萨迦县| 新竹市| 视频| 时尚| 武山县| 高碑店市| 屏南县| 奉新县| 涿鹿县| 瓦房店市| 铜山县| 都昌县| 威海市| 梅河口市| 洞口县| 枣庄市| 藁城市| 大姚县| 忻城县| 锦州市| 常宁市| 云和县| 涞水县| 尚义县| 德州市| 呼图壁县| 海口市| 阿坝| 光山县| 九龙城区| 麦盖提县|