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 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
php下实现伪 url 的超简单方法[转]
Sep 24 PHP
php 函数使用方法与函数定义方法
May 09 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
PHP 命名空间实例说明
Jan 27 PHP
php多文件上传实现代码
Feb 20 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
PHP闭包函数详解
Feb 13 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 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
桌面中心(一)创建数据库
2006/10/09 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
php实现的漂亮分页方法
2014/04/17 PHP
js技巧--转义符&quot;\&quot;的妙用
2007/01/09 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
python3实现mysql导出excel的方法
2019/07/31 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
生产部经理岗位职责
2013/12/16 职场文书
机械专业求职信
2014/05/25 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
青年教师个人总结
2015/02/11 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
优秀大学生申请书
2019/06/24 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA