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 相关文章推荐
WINDOWS服务器安装多套PHP的另类解决方案
Oct 09 PHP
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
php数组总结篇(一)
Sep 30 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
非常重要的php正则表达式详解
Jan 04 PHP
php处理带有中文URL的方法
Jul 11 PHP
Laravel5中防止XSS跨站攻击的方法
Oct 10 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
实例讲解PHP表单验证功能
Feb 15 PHP
PHP命令行与定时任务
Apr 01 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生成随机密码
2015/10/30 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python字典DICT类型合并详解
2017/08/17 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
python实现邮件自动发送
2019/08/10 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
《散步》教学反思
2014/03/02 职场文书
意向书范本
2014/07/29 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2015年司法所工作总结
2015/04/27 职场文书
歌咏比赛主持词
2015/06/29 职场文书
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS