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

一朋友找工作遇到的试题,备注一下。

极有可能今后我也会遇到的。

问题:php不用内置函数对数组排序,可能是降序或者升序

第一种方法:传说中的冒泡法

复制代码代码如下:

functionarraysort($data,$order='asc'){

//asc升序desc降序

$temp=array();

$count=count($data);

if($count<=0)

returnfalse;//传入的数据不正确

if($order=='asc'){

for($i=0;$i

for($j=$count-1;$j>$i;$j--){

if($data[$j]

//交换两个数据的位置

$temp=$data[$j];

$data[$j]=$data[$j-1];

$data[$j-1]=$temp;

}

}

}

}else{

for($i=0;$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,5,3,1,24,3,87,0,33,1,12,34,54,66,32);

var_dump(arraysort($data));//升序

echo('
');

var_dump(arraysort($data,'desc'));//降序

第二种方法:不知道取个什么名字好,就叫插入法吧!囧

复制代码代码如下:

functionarraysort3($data,$order='asc'){

//目前只做升序排列

$count=count($data);

for($i=1;$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,5,3,8,9,1,5,3,1,24,3,87,0,33,1,12,34,54,66,32);

var_dump(arraysort3($data));//升序

您可能感兴趣的文章:PHP数组排序方法总结推荐收藏php中二维数组排序问题方法详解array_multisort实现PHP多维数组排序示例讲解php简单实现多维数组排序的方法PHP冒泡排序二分查找顺序查找二维数组排序算法函数的详解php数组排序array_multisort与uasort的区别php关于array_multisort多维数组排序的使用说明PHP数组排序之sort、asort与ksort用法实例PHP简单数组排序实现代码PHP常见数组排序方法小结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值