搜尋
首頁後端開發PHP問題PHP數組中什麼是查找演算法?如何找到?

php中找演算法有很多種,你知道的有哪幾種呢?對於查找演算法的含義你又是如何理解的?本篇文章就是帶你去探索關於演算法的一些奧秘,一起探討數組中什麼是尋找演算法?如何找到?

相關推薦:在PHP中什麼是門面模式?他的優點是什麼?適用場景是什麼?

查找演算法:

找出演算法意義:

#尋找是在大量的資訊中尋找- -個特定的資訊元素,在電腦應用中,尋找是常用的基本運算。

查找演算法是指實作查找過程對應的程式碼結。就是中大型數組中去快速定位想要的元素。 。

順序查找演算法:

順序查找也稱為研查找,從資料結構線形表的-端開始,順序掃描,依序將掃描到的結點關鍵字與給定值k比較,若相等則表示查找成功;若掃描結束仍沒有找到關鍵字等於k的結點,表示查找失敗。

我們以程式碼為例:

<?php
//查找算法
//顺序查找
$arr = array(1,3,6,8,23,68,100);
//顺序查找:从数组第一个元素开始,挨个匹配
function check_order($arr , $num){
//全部匹配
for($i = 0,$len = count($arr);$i <$len;$i++){
//判断
if($arr[$i] == $num){
return $i;
}
}
return false ;
}
var_dump(check_order($arr,5));

PHP數組中什麼是查找演算法?如何找到?

#二分找出演算法

二分找出要求線形表中的結點依關鍵字值升序或降序扣列,用始定值k先與中間結點的關鍵字比較,中間結點把線形表分成兩​​個子表,若相等則查找成功;若不相等,再根據k與該中間結點關鍵字的比較結果確定下一步查找哪個子表,這樣遞歸進行,直到查找到或查找結束發現表中沒有這樣的結點。

折半演算法思路:

1、計算陣列長度; 。

2、確定左右兩邊的指標位置; 。

3、找到中間位置;

4、匹配。

5、然後根據大小重定邊界。

<?php
//查找算法
//顺序查找
$arr = array(1,3,6,8,23,68,100);
//顺序查找:从数组第一个元素开始,挨个匹配
function check_order($arr , $num){
//全部匹配
for($i = 0,$len = count($arr);$i <$len;$i++){
//判断
if($arr[$i] == $num){
return $i;
}
}
return false ;
}
//var_dump(check_order($arr,5));
//二分查找算法
//1、 得到数组边界
$right = count($arr);
$left= 0;
$res = 3;
//2、循环匹配,
while($left <=$right){
//3、得到中间位置
$middle = floor(($right + $left) / 2);
//4、匹配数据.
if($arr[$middle] == $res){
  echo $middle;
break;
}
//5、没有找到
if($arr[$middle] < $res){
//值在右边
$left = $middle + 1;
}else{
  //值在左边
  $right = $middle - 1;

PHP數組中什麼是查找演算法?如何找到?

推薦學習:《PHP影片教學

以上是PHP數組中什麼是查找演算法?如何找到?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器