您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP实现常见查找和排序算法

2024/3/31 11:26:55发布21次查看
下面分享一些最常见的算法,用php如何实现。
1、冒泡排序
function bubble_sort($arr) { $n=count($arr); for($i=0;$i for($j=$i+1;$j if($arr[$j] $temp=$arr[$i]; $arr[$i]=$arr[$j]; $arr[$j]=$temp; } } } return $arr;}
复制代码
2、归并排序
function merge(&$arr, $left, $mid, $right) { $i = $left; $j = $mid + 1; $k = 0; $temp = array(); while ($i { if ($arr[$i] $temp[$k++] = $arr[$i++]; else $temp[$k++] = $arr[$j++]; } while ($i $temp[$k++] = $arr[$i++]; while ($j $temp[$k++] = $arr[$j++]; for ($i = $left, $j = 0; $i $arr[$i] = $temp[$j];}function mergesort(&$arr, $left, $right){ if ($left { $mid = floor(($left + $right) / 2); mergesort($arr, $left, $mid); mergesort($arr, $mid + 1, $right); merge($arr, $left, $mid, $right); }}
复制代码
3、二分查找-递归
function bin_search($arr,$low,$high,$value) { if($low>$high) return false; else { $mid=floor(($low+$high)/2); if($value==$arr[$mid]) return $mid; elseif($value return bin_search($arr,$low,$mid-1,$value); else return bin_search($arr,$mid+1,$high,$value); }}
复制代码
4、二分查找-非递归
function bin_search($arr,$low,$high,$value) { while($low $mid=floor(($low+$high)/2); if($value==$arr[$mid]) return $mid; elseif($value $high=$mid-1; else $low=$mid+1; } return false;}
复制代码
5、快速排序
function quick_sort($arr) { $n=count($arr); if($n return $arr; $key=$arr[0]; $left_arr=array(); $right_arr=array(); for($i=1;$i if($arr[$i] $left_arr[]=$arr[$i]; else $right_arr[]=$arr[$i]; } $left_arr=quick_sort($left_arr); $right_arr=quick_sort($right_arr); return array_merge($left_arr,array($key),$right_arr);}
复制代码
6、选择排序
function select_sort($arr) { $n=count($arr); for($i=0;$i $k=$i; for($j=$i+1;$j if($arr[$j] $k=$j; } if($k!=$i) { $temp=$arr[$i]; $arr[$i]=$arr[$k]; $arr[$k]=$temp; } } return $arr;}
复制代码
7、插入排序
function insertsort($arr) { $n=count($arr); for($i=1;$i $tmp=$arr[$i]; $j=$i-1; while($arr[$j]>$tmp) { $arr[$j+1]=$arr[$j]; $arr[$j]=$tmp; $j--; if($j break; } } return $arr;}
复制代码
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product