24. 排序
来源:互联网 发布:windows返回快捷键 编辑:程序博客网 时间:2024/05/16 11:46
排序:
冒泡排序:
$arr = array(0,5,-1,90,-100,34.5,697,-39); //这是一个中间变量 $temp = 0; //外层循环 for($i=0;$i<count($arr)-1;$i++) { for($j=0;$j<count($arr)-1-$i;$j++) { //说明前面的数比后面的数大,就要交换 if($arr[$j]>$arr[$j+1]){ $temp = $arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; } } } var_dump($arr);
选择排序:
function selectSort(&$arr) { $temp = 0; for($i=0;$i<count($arr)-1;$i++){ //假设 $i 就是最小的数 $minVal = $arr[$i]; //记录我认为的最小数的下标 $minIndex = $i; for($j=$i+1;$j<count($arr);$j++){ //说明我们认为的最小值,不是最小 if($minVal>$arr[$j]){ $minVal = $arr[$j]; $minIndex = $j; } } //最后交换 $temp = $arr[$i]; $arr[$i] = $arr[$minIndex]; $arr[$minIndex] = $temp; } } $arr = array(0,5,-1,32,15,20,-9); selectSort($arr); var_dump($arr);
插入排序:
//插入排序法(小到大) function insertSort(&$arr) { //先默认下标为0的这个数已经是有序的 for($i=1;$i<count($arr);$i++){ $insertVal = $arr[$i]; $insertIndex = $i - 1; //如果这个条件满足,说明我们还没找到合适的位置 while($insertIndex>=0 && $insertVal<$arr[$insertIndex]){ //同时把数后移 $arr[$insertIndex+1] = $arr[$insertIndex]; $insertIndex--; } //插入(这是就给$insertVal找到合适位置) $arr[$insertIndex+1] = $insertVal; } } $arr = array(0,5,-1,32,15,20,-9); insertSort($arr); var_dump($arr);
效率: 冒泡<选择<插入
0 0
- 24. 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- FiniteTimeAction,Follow,Speed源码分析
- VC写加密壳
- B2B移动商务社交平台贸人E家APP在深首发
- poj2388Who's in the Middle【堆排序】
- 第三方微博登陆,通过OAuth 2.0 进行授权
- 24. 排序
- HDOJ 5400 Arithmetic Sequence 暴力枚举
- JMX监控Zookeeper状态Java API
- HashMap HashTable CourrentHashMap 区别
- Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并
- 数据库:数据删除
- 2015.8.19 凌晨.. 博客开通 希望能从一个菜鸟慢慢变成大牛..
- JVM内存结构
- 数据库:数据更新