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 相关文章推荐
获得Google PR值的PHP代码
Jan 28 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
Apache中php.ini的设置方法
Feb 28 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
解析php中获取系统信息的方法
Jun 25 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
微信小程序自定义波浪组件使用方法详解
2019/09/21 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
Python进阶之尾递归的用法实例
2018/01/31 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
python动态文本进度条的实例代码
2020/01/22 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
Django celery异步任务实现代码示例
2020/11/26 Python
python selenium 获取接口数据的实现
2020/12/07 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
《泉水》教学反思
2014/04/11 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
党课心得体会范文
2014/09/09 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
2015元旦标语横幅
2014/12/09 职场文书
Python基于百度AI实现抓取表情包
2021/06/27 Python
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python