PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解


Posted in PHP onJune 25, 2013

数据结构很重要,算法+数据结构+文档=程序
使用PHP描述冒泡排序算法,对象可以是一个数组

//冒泡排序(数组排序)
function bubble_sort($array) {
$count = count($array);
if ($count <= 0)
return false;
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j?){
if ($array[$j] < $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array; }

使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
//二分查找(数组里查找某个元素)
function bin_sch($array, $low, $high, $k){
if ($low <= $high){
$mid = intval(($low+$high)/2);
if ($array[$mid] == $k){
return $mid;
}elseif ($k < $array[$mid]){
return bin_sch($array, $low, $mid-1, $k);
}else{
return bin_sch($array, $mid+1, $high, $k);
}
}
return -1;
}
//顺序查找(数组里查找某个元素)
function seq_sch($array, $n, $k){
$array[$n] = $k;
for($i=0; $i<$n; $i++){
if($array[$i]==$k){
break;
}
}
if ($i<$n){
return $i;
}else{
return -1;
}
}

写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
if (!is_array($arr)) {
return false;
}
$keysvalue = array();
foreach($arr as $key => $val) {
$keysvalue[$key] = $val[$keys];
}
if($order == 0){
asort($keysvalue);
}else {
arsort($keysvalue);
}
reset($keysvalue);
foreach($keysvalue as $key => $vals) {
$keysort[$key] = $key;
}
$new_array = array();
foreach($keysort as $key => $val) {
$new_array[$key] = $arr[$val];
}
return $new_array;
}

PHP 相关文章推荐
PHP入门学习笔记之一
Oct 12 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
四个PHP非常实用的功能
Sep 29 PHP
php实现分页显示
Nov 03 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
php删除数组中重复元素的方法
Dec 22 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
详解PHP发送邮件知识点
May 06 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
使用php判断网页是否gzip压缩
Jun 25 #PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 #PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 #PHP
提升PHP性能的21种方法介绍
Jun 25 #PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 #PHP
解析php取整的几种方式
Jun 25 #PHP
关于PHP内存溢出问题的解决方法
Jun 25 #PHP
You might like
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
Vue 中的compile操作方法
2018/02/26 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
python导出hive数据表的schema实例代码
2018/01/22 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
家长给孩子的表扬信
2014/01/17 职场文书
高中军训的心得体会
2014/09/01 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
运动会通讯稿50字
2015/07/20 职场文书
Java数组详细介绍及相关工具类
2022/04/14 Java/Android