博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP经典算法题
阅读量:6160 次
发布时间:2019-06-21

本文共 2147 字,大约阅读时间需要 7 分钟。

PHP学习之路---算法题

1.使用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;    }}

2.使用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;}
快速排序(数组排序)
function quick_sort($array) {    if (count($array) <= 1) return $array;    $key = $array[0];    $left_arr = array();    $right_arr = array();    for ($i=1; $i;$i++){        if ($array[$i] <= $key){        $left_arr[] = $array[$i];    }else{          $right_arr[] = $array[$i];    }}    $left_arr = quick_sort($left_arr);    $right_arr = quick_sort($right_arr);    return array_merge($left_arr, array($key), $right_arr);}

3.写一个二维数组排序算法函数,能够具有通用性,可以调用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;}

原文地址:

转载于:https://www.cnblogs.com/lovellll/p/10409476.html

你可能感兴趣的文章
前端js之JavaScript
查看>>
Log4J日志配置详解
查看>>
实验7 BindService模拟通信
查看>>
scanf
查看>>
Socket编程注意接收缓冲区大小
查看>>
SpringMVC初写(五)拦截器
查看>>
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>