php数组不用函数排序,php不用内置函数对数组排序的两个算法示例

这篇文章主要为大家详细介绍了php不用内置函数对数组排序的两个算法示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧!一朋友找工作遇到的试题,备注一下。

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

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

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

代码如下:

// wWw.512pic.com

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

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

echo ('
');

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

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

代码如下:

// wWw.512pic.com

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

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

注:关于php不用内置函数对数组排序的两个算法示例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:

您可能感兴趣的文章

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值