手机
当前位置:查字典教程网 >编程开发 >php教程 >php不用内置函数对数组排序的两个算法代码
php不用内置函数对数组排序的两个算法代码
摘要:一朋友找工作遇到的试题,备注一下。极有可能今后我也会遇到的。问题:php不用内置函数对数组排序,可能是降序或者升序第一种方法:传说中的冒泡法...

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

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

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

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

复制代码 代码如下:

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 ('<br>');

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

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

复制代码 代码如下:

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不用内置函数对数组排序的两个算法代码】相关文章:

php中命名空间namespace用法介绍

php eval函数一句话木马代码

php中header跳转使用include包含解决参数丢失问题

php数组随机排序实现方法

如何对PHP程序中的常见漏洞进行攻击

图形数字验证代码

两种php调用Java对象的方法

php实现插入排序

php对象和数组相互转换的方法

PHP调用三种数据库的方法(2)

精品推荐
分类导航