加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php不用内置函数对数组排序的两个算法代码

发布时间:2020-05-24 22:24:09 所属栏目:PHP 来源:互联网
导读:php不用内置函数对数组排序,可能是降序或者升序

一朋友找工作遇到的试题,备注一下。
极有可能今后我也会遇到的。
问题:php不用内置函数对数组排序,可能是降序或者升序
第一种方法:传说中的冒泡法
<div class="codetitle"><a style="CURSOR: pointer" data="29017" class="copybut" id="copybut29017" onclick="doCopy('code29017')"> 代码如下:<div class="codebody" id="code29017">
function arraysort($data,$order = 'asc') {
//asc升序 desc降序
$temp = array ();
$count = count ( $data );
if ($count <= 0)
return false; //传入的数据不正确
if ($order == 'asc') {
for($i = 0; $i < $count; $i ++) {
for($j = $count - 1; $j > $i; $j --) {
if ($data [$j] < $data [$j - 1]) {
//交换两个数据的位置
$temp = $data [$j];
$data [$j] = $data [$j - 1];
$data [$j - 1] = $temp;
}
}
}
} else {
for($i = 0; $i < $count; $i ++) {
for($j = $count - 1; $j > $i; $j --) {
if ($data [$j] > $data [$j - 1]) {
$temp = $data [$j];
$data [$j] = $data [$j - 1];
$data [$j - 1] = $temp;
}
}
}
}
return $data;
}
$data = array (7,5,3,8,9,1,24,87,33,12,34,54,66,32 );
var_dump ( arraysort ( $data ) ); //升序
echo ('
');
var_dump ( arraysort ( $data,'desc') );//降序

第二种方法:不知道取个什么名字好,就叫插入法吧!囧
<div class="codetitle"><a style="CURSOR: pointer" data="20731" class="copybut" id="copybut20731" onclick="doCopy('code20731')"> 代码如下:<div class="codebody" id="code20731">
function arraysort3($data,$order = 'asc') {
//目前只做升序排列
$count = count ( $data );
for($i = 1; $i < $count; $i ++) {
$temp = $data [$i];
$j = $i - 1;
while ( $data [$j] > $temp ) {
$data [$j + 1] = $data [$j];
$data [$j] = $temp;
$j --;//为什么要递减:从高位逐位判断
}
}
return $data;
}
$data = array (7,32 );
var_dump ( arraysort3 ( $data ) ); //升序

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读