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写MySQL数据 实现代码
Jun 15 PHP
elgg 获取文件图标地址的方法
Mar 20 PHP
Smarty Foreach 使用说明
Mar 23 PHP
php修改时间格式的代码
May 29 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
php自定义错误处理用法实例
Mar 20 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
ThinkPHP表单令牌错误的相关解决方法分析
May 20 PHP
解析PHP之提取多维数组指定列的方法
Jan 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
php表单请求获得数据求和示例
2014/05/15 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
js改变Iframe中Src的方法
2015/05/05 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
原生js实现分页效果
2020/09/23 Javascript
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
django session完成状态保持的方法
2018/11/27 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Python中的整除和取模实例
2020/06/03 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
大学生创业计划书的范文
2014/01/07 职场文书
团队拓展活动总结
2014/08/27 职场文书
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android