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

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

问题: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 ('

');

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教程有兴趣的朋友有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php 八字算法,南方排八字专业程序 php不用内置函数对数组排序的两个算法代码...相关推荐

  1. MATLAB 求函数极值的内置函数一览表(实则优化算法函数汇总)

    MATLAB 求函数极值的内置函数一览表 收集了几乎所有的 MATLAB 内置的优化函数,可收藏,需要时查阅. 文章目录 MATLAB 求函数极值的内置函数一览表 简介 概览 求函数极值(或最大值最小 ...

  2. 微信小程序判断服务器返回值,让微信小程序内置函数返回promise的方法

    Promise API const promisic = function (func) { return function (params = {}) { return new Promise((r ...

  3. 【免费领取】趣味测试小程序源码/内置超多趣味测评+可插入流量主广告位微信小程序源码

    本资源可免费获取,请至尾部读阅! 类型: 小程序 大小:2MB 说明:仅供学习使用 语言:PHP 介绍: 趣味测试小程序源码,本程序无后台,可插入流量主广告位,实现躺赚模式,内置超多趣味测评,界面美观 ...

  4. 配音小程序源码,内置106个配音角色

    短视频配音小程序源代码是UNIAPP编写,支持微信小程序,内置106个配音角色,完美的用户分销系统,支持各种情感配音,新闻配音,女性配音,男性磁性配音等等各种短视频配音,搭建上线即可运营,源代码采用云 ...

  5. 自我监督打卡程序-使用excel内置vba编写

    下载入口:https://download.csdn.net/download/SZP1026/86620379 (写博文时还没通过审核,如果链接无效请移步我的csdn主页寻找) 第一个版本还很简陋, ...

  6. python【数据结构与算法】内置函数 zip() 函数(看不懂你来打我)

    文章目录 描述 语法 返回值 实例 描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度 ...

  7. python【数据结构与算法】内置函数enumerate(枚举) 函数(看不懂你来打我)

    文章目录 描述 语法 参数 返回值 实例 描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. ...

  8. python【数据结构与算法】各进制转换-使用内置函数

    文章目录 1 其他进制向十进制之间的转换 2 十进制向其他进制之间的转换 2.1 使用内置函数来转换 2.2 使用字符串格式化来转化 1 其他进制向十进制之间的转换 string1 = '101010 ...

  9. PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())

    //二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order=0) {if ( ...

最新文章

  1. Android OTA在线升级二(升级包编译原理分析) 【转】
  2. java线程饥饿死锁_java并发-线程饥饿死锁测试
  3. joc杂志影响因子2019_另类统计!2019影响因子贡献文章排行榜,看完有点心塞
  4. 中国磁性材料行业竞争趋势及供需前景分析报告2021年版
  5. springboot入门(项目)
  6. E. Jamie and Tree(树链剖分 + 线段树)
  7. Irrlicht例002--Quake3Map
  8. Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
  9. mysql结构改写为hbase表_根据mysql表中字段创建hbase表
  10. 栈的应用-后缀表达式
  11. 头歌平台(EduCoder)—— 数据挖掘算法原理与实践:k-近邻
  12. 大数据发展趋势之我见
  13. 第三方百度地图----显示所在位置
  14. Python实现小说下载器,可以打包exe
  15. PS制作六边形蜂窝状banner人物海报
  16. C++实现matlab中的interp1和interp2插值
  17. DZ 系统维护工具箱Tools
  18. 关于2020的个人总结
  19. openssh for android,android安装openssh,通过其他电脑ssh登陆到安卓手机
  20. git安装及github配置

热门文章

  1. CMMI证书背后的6大怪相 缺陷非常多
  2. NGINX配合FASTDFS使用的安装与配置及编译遇到错误:cc1: all warnings being treated as errors
  3. 全连接神经网络详解(Full Connect Neural Network)
  4. 了解RPG游戏中剧情播放器的制作原理及流程
  5. 竖排显示变横排显示的方法
  6. java mongo忽略大小写,MongoDB:是否可以进行不区分大小写的查询?
  7. 教你各种脸型怎么选发型
  8. OpenHarmony开发者文档 获取工具.md HUAWEI DevEco Studio下载地址 HUAWEI DevEco Device Tool下载地址
  9. 测色仪取色器颜色识别器含潘通劳尔色卡匹配色差计详细图文教程
  10. 怎样在快手快速下载不含水印视频详细介绍 快手大批量下载高清无水印视频软件 说说如何快速下...