基本排序
2016-02-20 00:00
176 查看
冒泡排序 $a=array('3','8','1','4','11','7'); $len = count($a); for($i=1;$i<$len;$i++){ for($j=$len-1;$j>=$i;$j--){ if($a[$j]<$a[$j-1]) {//如果是从大到小的话,只要在这里的判断改成if($a[$j]>$a[$j-1])就可以了 $x=$a[$j]; $a[$j]=$a[$j-1]; $a[$j-1]=$x; } } } print_r($a); function maopao($arr) { $len = count($arr); for($i=1; $i<$len; $i++)//最多做n-1趟排序 { $flag = false; //本趟排序开始前,交换标志应为假 for($j=$len-1;$j>=$i;$j--) { if($arr[$j]<$arr[$j-1])//交换记录 {//如果是从大到小的话,只要在这里的判断改成if($arr[$j]>$arr[$j-1])就可以了 $x=$arr[$j]; $arr[$j]=$arr[$j-1]; $arr[$j-1]=$x; $flag = true;//发生了交换,故将交换标志置为真 } } if(! $flag)//本趟排序未发生交换,提前终止算法 return $arr; } } $shuz = array('2','4','1','8','5'); $bb = maopao($shuz); print_r($bb) // 快速排序 function kuaisu($arr){ $len = count($arr); if($len <= 1){ return $arr; } $key = $arr[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i<$len;$i++){ if($arr[$i] <= $key){ $left_arr[] = $arr[$i]; }else{ $right_arr[] = $arr[$i]; } } $left_arr = kuaisu($left_arr); $right_arr = kuaisu($right_arr); return array_merge($left_arr, array($key), $right_arr); } $arr = array(23,98,54,2,9,62,34); print_r(kuaisu($arr));
相关文章推荐
- 基于jqury的数秒后自动提交form
- jQuery 实现 Checkbox 的全选、全不选和反向选择的功能
- 城市三级联动
- vs上开发用的插件工具
- 软件厂商
- 修改7-zip主题
- Ember官网文档整理
- CentOS_6.5安装FastDFS_5.05
- CentOS6.5升级到CentOS7
- 我为什么要学Swift
- 基本数据类型——swift学习笔记(2)
- Chrome插件--Octotree
- Maven tomcat插件实现热病部署
- java6内置JS引擎初接触
- 一:JVM学习一JVM内存模型
- 二:JVM学习-垃圾收集算法以及常用的垃圾收集器
- 三:JVM学习-内存分配以及回收策略
- 启动服务的两种方式
- AIDL简单使用(通过它跨应用传递对象(数据))
- 【前端开发者福利】html5移动端常见问题集锦