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 相关文章推荐
文章推荐系统(三)
Oct 09 PHP
php 保留小数点
Apr 21 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
PHP求小于1000的所有水仙花数的代码
Jan 10 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 PHP
php-msf源码详解
Dec 25 PHP
php实现的AES加密类定义与用法示例
Jan 29 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 24 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 adodb连接mssql解决乱码问题
2009/06/12 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
Python使用py2exe打包程序介绍
2014/11/20 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
如何用Python 加密文件
2020/09/10 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
python 实现IP子网计算
2021/02/18 Python
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
个人作风剖析材料
2014/02/02 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
留学推荐信范文
2014/05/10 职场文书
2014年药房工作总结
2014/11/22 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers