55、PHP实现插入排序、二分查找
创始人
2024-11-15 12:10:01
0

题目: PHP实现插入排序

描述:

  • 思路:选择一个带插入的元素(假设从第一个开始),分别和已经插入有顺序
  • 的元素比较,如果要插入元素比比较元素小,则位置交换
function insertSort($arr){     if(!is_array($arr)) return false;     //外层循环插入次数     for($i=1;$i         $tmp = $arr[$i];//要插入的元素         //内层循环比较和插入         for($j=$i-1;$j>=0;$j--){             //发现要插入的元素小             if($tmp < $arr[$j]){                 //将后边的元素和前面的元素交换                 $arr[$j+1]=$arr[$j];                 //把前面的数设置为当前需要交换的数                 $arr[$j] = $tmp;             }         }     }     return $arr; } 

题目: 二分查找

描述:


  • 思路分析:数组中间的值floor((low+top)/2)

  • 先取数组中间的值floor((low+top)/2)然后通过与所需查找的数字进行比较,
  • 若比中间值大则将首值替换为中间位置下一个位置,继续第一步的操作;
  • 若比中间值小,则将尾值替换为中间位置上一个位置,继续第一步操作
  • 重复第二步操作直至找出目标数字
/**  * 非递归版 二分查找  *  * @param array $container  * @param       $search  * @return int|string  */ function BinaryQuery(array $container, $search) {     $top = count($container);     $low = 0;     while ($low <= $top) {         $mid = intval(floor(($low + $top) / 2));         if (!isset($container[$mid])) {             return '没找着哦';         }         if ($container[$mid] == $search) {             return $mid;         }         $container[$mid] < $search && $low = $mid + 1;         $container[$mid] > $search && $top = $mid - 1;     } } /**  * 递归版 二分查找  *  * @param array  $container  * @param        $search  * @param int    $low  * @param string $top  * @return int|string  */ function BinaryQueryRecursive(array $container, $search, $low = 0, $top = 'default') {     $top == 'default' && $top = count($container);     if ($low <= $top) {         $mid = intval(floor($low + $top) / 2);         if (!isset($container[$mid])) {             return '没找着哦';         }         if ($container[$mid] == $search) {             return $mid;         }         if ($container[$mid] < $search) {             return BinaryQueryRecursive($container, $search, $mid + 1, $top);         } else {             return BinaryQueryRecursive($container, $search, $low, $mid - 1);         }     } } 

相关内容

热门资讯

IA解析/牛牛房卡怎么获得茄子... 今 日消息,茄子娱乐房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
推荐一款!牛牛房卡制作链接新九... 新九天大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:33290...
头条推荐!金花房卡代理零售新神... 您好!微信新神兽/青龙大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(新神兽/青龙...
科技实测!牛牛房卡代理九九大厅... 九九大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
安卓系统功能可以添加吗,解锁无... 你有没有想过,你的安卓手机里那些功能是不是可以像变魔术一样,随心所欲地添加新的呢?没错,今天就来聊聊...
我来教你/牛牛房卡怎么获得乐乐... 微信游戏中心:乐乐大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
IA解析/牛牛房卡游戏平台加盟... 您好!微信精卫大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(精卫大厅)大厅介绍:...
一分钟了解!牛牛房卡批发平台火... 今 日消息,火狐大厅/新超圣房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更...
正版授权!金花微信链接市场价格... 天启联盟房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
推荐一款!金花房卡出售新道游/... 推荐一款!金花房卡出售新道游/新皇豪/房卡客服新道游/新皇豪是一款非常受欢迎的游戏,咨询房/卡添加微...
我来教你/牛牛房卡制作链接神盾... 神盾大厅/新天道是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:33...
IA解析/金花房卡出售青鸟大厅... 微信游戏中心:青鸟大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
玩家攻略,怎么买斗牛房卡星空乐... 星空乐娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
重大通报,微信金花房卡怎么弄九... 今 日消息,九哥联盟房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
我来教你/金花房卡怎么购买荣耀... 荣耀乐娱房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
ia攻略/牛牛房卡怎么购买天蝎... ia攻略/牛牛房卡怎么购买天蝎大厅/微信链接房卡价格一览表天蝎大厅是一款非常受欢迎的游戏,咨询房/卡...
重大通报,金花微信链接市场价格... 微信游戏中心:海航大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
正版授权!金花房卡专卖店老神兽... 老神兽/海贝大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:33...
重大通报,金花房卡怎么购买新八... 今 日消息,新八戒房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单介...
玩家攻略,金花房卡官网生肖系列... 玩家攻略,金花房卡官网生肖系列/新大圣/房卡链接怎么弄的生肖系列/新大圣是一款非常受欢迎的游戏,咨询...