部分排序算法(php版)
来源:互联网 发布:js里的on是什么意思 编辑:程序博客网 时间:2024/05/29 02:50
$arr=array(3,6,5,7,1,8,2,9,10,4);print_r($arr);function swap(&$arr,$i,$j){ $tmp=$arr[$i]; $arr[$i]=$arr[$j];$arr[$j]=$tmp;}//快速排序function quicksort(&$arr,$start,$end){if($start<$end){ $base=$arr[0]; $i=$start; $j=$end+1; while(true){ while($i<$end && $arr[++$i]-$base<=0);while($j>$start && $arr[--$j]-$base>=0);if($i<$j){ swap($arr,$i,$j);}else{ break;} swap($arr,$start,$j); quicksort($arr,$start,$j-1); quicksort($arr,$j+1,$end); } } }//quicksort($arr,0,count($arr)-1);//print_r($arr);//快排2function quickSort2($list) {//1if(count($list)<= 1) {//不需要再继续了return $list;}//2$cankao = $list[0];//3$small = $big = array();for($k=1, $len=count($list); $k<$len; ++$k) {if($list[$k] > $cankao) { $big[] = $list[$k];} else { $small[] = $list[$k];}}//4$sort_small = quickSort($small);$sort_big = quickSort($big);//5return array_merge($sort_small, array($cankao), $sort_big);}//插入排序function insertsort(&$arr){ $arrlen=count($arr); for($i=1;$i<$arrlen;$i++) { $tmp=$arr[$i]; if($arr[$i]-$arr[$i-1]<0) { $j=$i-1; for(;$j>=0 && $arr[$j]-$tmp>0;$j--) { $arr[$j+1]=$arr[$j]; } $arr[$j+1]=$tmp; } } }//insertsort($arr);//print_r($arr);//折半插入排序function binaryinsertsort(&$arr){ $arrlen=count($arr); for($i=1;$i<$arrlen;$i++) { $tmp=$arr[$i]; $low=0; $high=$i-1; while($low <= $high) { $mid=(int)(($low+$high)/2);if($tmp-$arr[$mid]>0){ $low=$mid+1;}else{ $high=$mid-1;} } for($j=$i;$j>$low;$j--) { $arr[$j]=$arr[$j-1]; } $arr[$low]=$tmp; }}//binaryinsertsort($arr);//print_r($arr);//shell排序 (经测试有误)function shellsort(&$arr){ $arrlen=count($arr); $h=1; while($h <= (int)($arrlen/3)) { $h=$h*3+1; } while($h>0) {for($i=$h;$i<$arrlen;$i++){$tmp=$arr[$i];if($arr[$i]-$arr[$i-$h]>0){ $j=$i-$h; for(;$j>=0 && $arr[$j]-$tmp>0;$j-=$h) { $arr[$j+$h]=$arr[$j]; } $arr[$j+$h]=$tmp;}}$h=(int)(($h-1)/3); } }//shellsort($arr);//print_r($arr);//桶状排序function bucketSort(&$list) {//取得最大值与最小值$max = max($list);$min = min($list);//做桶//分配一个数组,下标从最小值开始,到最大值!//array_fill(起始下标,长度,填充值)$bucket = array_fill($min, $max-$min+1, 0);//遍历待排序的序列,将数量统计到桶foreach($list as $value) {++ $bucket[$value];}//遍历桶,得到所有的数foreach($bucket as $key=>$value) {for($i=1;$i<=$value;++$i) {//echo $key, ' ';$result[] = $key;}}return $result;}//bucketsort($arr);//print_r($arr);
0 0
- 部分排序算法(php版)
- PHP部分常见算法
- PHP部分常见算法
- PHP部分常见算法
- 【php】php排序算法
- 部分排序算法的实现
- 部分排序算法python实现
- 面试常见基本题目总结及php实现(第一部分:排序算法)
- 几种排序算法(PHP版)
- PHP排序算法大全
- PHP 排序算法解析
- php 快速排序算法
- php 选择排序算法
- php冒泡排序算法
- PHP排序算法
- PHP冒泡排序算法
- PHP 排序算法
- PHP中的排序算法
- Uniform Generator
- 网络安全相关技术小结
- 盘点SharePoint 2013那些优秀的开发工具(下)
- 修改标签透明度
- delphi常用正则表达式
- 部分排序算法(php版)
- MFC创建快捷方式
- J-link工具的使用
- 大数据工程人员知识图谱
- 深度揭秘:《红楼梦》到底讲了些什么?
- 性能测试的目的
- 初识frameset
- Effective C++ --3 资源管理
- vim map自定义快捷键