There are many search algorithms in php. Which ones do you know? How do you understand the meaning of search algorithms? This article will take you to explore some mysteries about algorithms. Let’s discuss what is a search algorithm in an array? How to find it?
Related recommendations: What is the facade pattern in PHP? What are his strengths? What are the applicable scenarios?
Search algorithm:
Search algorithm meaning:
Search is to find a specific information element in a large amount of information. In computer applications, search is a commonly used basic operation.
The search algorithm refers to the code structure corresponding to the search process. It is to quickly locate the desired elements in medium and large arrays. .
Sequential search algorithm:
Sequential search is also called research search. Starting from the - end of the data structure linear table, it scans sequentially and scans the nodes in sequence. The keyword is compared with the given value k. If they are equal, the search is successful; if the node with the keyword equal to k is not found at the end of the scan, the search fails.
Let’s take the code as an example:
<?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));
Binary search algorithm
Binary search requires linear table The nodes are listed in ascending or descending order according to the keyword value. The initial value k is used to compare with the keyword of the intermediate node. The intermediate node divides the linear table into two sub-tables. If they are equal, the search is successful; if they are not equal, then based on The comparison result between k and the key of the intermediate node determines which sub-table to search next, and so on recursively until the search is found or the search ends and it is found that there is no such node in the table.
Half algorithm idea:
1. Calculate the length of the array; .
2. Determine the pointer positions on the left and right sides; .
3. Find the middle position;
4. Match.
5. Then reset the boundaries according to the size.
<?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;
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What is the search algorithm in PHP array? How to find it?. For more information, please follow other related articles on the PHP Chinese website!