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

首页 > 网络编程 > PHP编程 > php技巧 更新日期: 2016-04-29
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 ) ); //升序

> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • Python内置函数dir详解
    这篇文章主要介绍了Python内置函数dir详解,本文讲解了命令介绍.使用实例.使用dir查找module下的所有类.如何找到当前模块下的类等内容,需要的朋友可以参考下1.命令介绍 最近学习并使用了一个python的内置函数dir,首先help一下: 代码如下:>>> help(dir)Help on built-in function d ...
  • python中__call__内置函数用法实例
    这篇文章主要介绍了python中__call__内置函数用法,实例分析了python中__call__内置函数的原理与使用技巧,需要的朋友可以参考下本文实例讲述了python中__call__内置函数的用法.分享给大家供大家参考.具体分析如下: 对象通过提供__call__(slef, [,*args [,**kwargs]])方法可以模拟函数的行为,如果一 ...
  • Python内置函数Type()函数一个有趣的用法
    这篇文章主要介绍了Python内置函数Type函数一个有趣的用法,本文讲解的是个人发现在的一个有趣的用法,注意这种写法会导致代码很难读,需要的朋友可以参考下今天在网上看到type的一段代码 ,然后查了一下文档,才知道type还有三个参数的用法. http://docs.python.org/2/library/functions.html#type 以前只是 ...
  • Python常用内置函数总结
    这篇文章主要介绍了Python常用内置函数总结,本文罗列了数学相关 .功能相关.类型转换.字符串处理.序列处理函数等常用内置函数,需要的朋友可以参考下一.数学相关 1.绝对值:abs(-1)2.最大最小值:max([1,2,3]).min([1,2,3])3.序列长度:len('abc').len([1,2,3]).len((1,2,3))4.取模:divm ...
  • Python内置函数的用法实例教程
    这篇文章主要介绍了Python内置函数的用法,包括求绝对值的abs函数及数值类型转换函数等,需要的朋友可以参考下本文简单的分析了Python中常用的内置函数的用法,分享给大家供大家参考之用.具体分析如下: 一般来说,在Python中内置了很多有用的函数,我们可以直接调用. 而要调用一个函数,就需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数. ...
猜你喜欢