练习
来源:互联网 发布:淘宝历史价格查询插件 编辑:程序博客网 时间:2024/05/13 06:27
function quickSortRecursion(&$arr, $begin, $end){ if ($begin < $end) { $left = $begin; $right = $end; $temp = $arr[$begin]; // $temp为基准元素 // 把小于$temp的元素放到$temp左边,大于它的放在右边 while ($left < $right) { while ($left < $right && $arr[$right] >= $temp) $right--; if ($left < $right) { $arr[$left++] = $arr[$right]; } while ($left < $right && $arr[$left] <= $temp) $left++; if ($left < $right) { $arr[$right--] = $arr[$left]; } } $arr[$left] = $temp; quickSortRecursion($arr, $begin, $left - 1); quickSortRecursion($arr, $left + 1, $end); } return $arr;}function quickSort($arr){ $len = count($arr); quickSortRecursion($arr, 0, $len - 1); return $arr;}$arr = [3, 1, 13, 5, 7, 11, 2, 4, 14, 9, 15, 6, 12, 10, 8];print_r(quickSort($arr));exit;//insertSort$arr = array(3, 2, 1);for ($i = 0; $i < count($arr) - 1; $i++) { $k = $i; for ($j = $i + 1; $j < count($arr); $j++) { $k = ($arr[$k] > $arr[$j]) ? $j : $k; } $tmp = $arr[$i]; $arr[$i] = $arr[$k]; $arr[$k] = $tmp;}print_r($arr);exit;//bubbleSort$arr = array(3, 2, 1);$flag = 0;for ($i = count($arr) - 1; $i > 0; $i--) { for ($j = 1; $j <= $i; $j++) { if ($arr[$j - 1] > $arr[$j]) { $flag = 1; $tmp = $arr[$j - 1]; $arr[$j - 1] = $arr[$j]; $arr[$j] = $tmp; } if ($flag == 0) { //如果本次没有发生交换的话就跳到下一次 continue; } }}print_r($arr);exit;//每次由队列的头部开始删除元素//从1 开始//当数到3的时候,就删除第3个元素,然后从第四个开始重新从1开始//n为整个数组 m相隔几个删除一个function ysf($n, $m){ $arr = range(1, $n); $i = 0; while ($m <= count($arr)) { ++$i; $surive = array_shift($arr); //每一次都要删除一个元素 if ($i % $m <> 0) { array_push($arr, $surive); } elseif ($i > count($surive)) { //删除了要重新从1开始数了。 $i = 0; } } return $arr;}var_dump(ysf(7, 3));exit;
阅读全文
0 0
- 练习
- “++”“--”练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 音视频编解码简易介绍
- 第23讲项目6-前导0的数字
- AdjustWindowRect 与 SetWindowPos
- Linux 启动卡在Starting kernel ...
- centos6.5 ifconfig -a显示为eth1,但是配置文件只有eth0
- 练习
- jquery中绑定事件(on,bind,delegate,live)详解
- TWS API 97.3 python3.6 出现 decode错误
- springmvc源码分析系列-请求处理流程
- day4_字符串的两头堵模型
- 重新运行explorer.exe
- obs之lame编码
- 【读书笔记】Android源码设计模式解析与实战(三)——建造者模式(Builder)
- git分支(branch)操作相关命令