• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解_php技巧

php 搞代码 3年前 (2022-01-26) 19次浏览 已收录 0个评论

数据结构很重要,算法+数据结构+文档=程序
使用PHP描述冒泡排序算法,对象可以是一个数组

<STRONG>//冒泡排序(数组排序)<BR></STRONG>function bubble_sort($array) {<BR>$count = count($array);<BR>if ($count <= 0)<BR>return false;<BR>for($i=0; $i<$count; $i++){<BR>for($j=$coun<mark>(本文来)源gaodaimacom搞#^代%!码&网(</mark><pre>搞gaodaima代码

t-1; $j>$i; $j–){
if ($array[$j] < $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array; }

使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组

<STRONG>//二分查找(数组里查找某个元素)<BR></STRONG>function bin_sch($array, $low, $high, $k){<BR>if ($low <= $high){<BR>$mid = intval(($low+$high)/2);<BR>if ($array[$mid] == $k){<BR>return $mid;<BR>}elseif ($k < $array[$mid]){<BR>return bin_sch($array, $low, $mid-1, $k);<BR>}else{<BR>return bin_sch($array, $mid+1, $high, $k);<BR>}<BR>}<BR>return -1;<BR>}<BR><STRONG>//顺序查找(数组里查找某个元素)<BR></STRONG>function seq_sch($array, $n, $k){<BR>$array[$n] = $k;<BR>for($i=0; $i<$n; $i++){<BR>if($array[$i]==$k){<BR>break;<BR>}<BR>}<BR>if ($i<$n){<BR>return $i;<BR>}else{<BR>return -1;<BR>}<BR>}<BR>


写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数

<STRONG>//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序<BR></STRONG>function array_sort($arr, $keys, $order=0) {<BR>if (!is_array($arr)) {<BR>return false;<BR>}<BR>$keysvalue = array();<BR>foreach($arr as $key => $val) {<BR>$keysvalue[$key] = $val[$keys];<BR>}<BR>if($order == 0){<BR>asort($keysvalue);<BR>}else {<BR>arsort($keysvalue);<BR>}<BR>reset($keysvalue);<BR>foreach($keysvalue as $key => $vals) {<BR>$keysort[$key] = $key;<BR>}<BR>$new_array = array();<BR>foreach($keysort as $key => $val) {<BR>$new_array[$key] = $arr[$val];<BR>}<BR>return $new_array;<BR>}<BR>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址