算法学习--希尔和快速排序
2014-02-18 16:40
344 查看
<?php //希尔派讯 function scheer(array $array){ $total=$grp=count($array); while ($grp>1){ $grp=ceil($grp/2); do{ $p=0; for($j=0;$j+$grp<=$total-1;$j++){ if ($array[$j]>$array[$j+$grp]){ $tmp=$array[$j]; $array[$j]=$array[$j+$grp]; $array[$j+$grp]=$tmp; $p=1; } } }while ($p!=0); } var_dump($array); } //快速排序 function quicksort($array,$frist,$last){ if($frist<$last){ $i=$frist; $j=$last+1; $num=$array[$frist]; do{ do { $i++; }while (!($num<=$array[$i]||$i==$last)); do { $j--; }while (!($num>=$array[$j]||$j==$frist)); if($i<$j){ $tmp=$array[$i]; $array[$i]=$array[$j]; $array[$j]=$tmp; }else{ $tmp=$array[$frist]; $array[$frist]=$array[$j]; $array[$j]=$tmp; break; } }while (1); quicksort($array, $frist, $j-1); //前半部分 quicksort($array, $j+1, $last); //后半部分 }else{ var_dump($array); } } //函数运用 $array=array(58,56,49,78,26,46,39,42,16,84,96); //scheer($array); quicksort($array, 0, (count($array)-1)); ?>
相关文章推荐
- java必须知道的八大种排序算法:冒泡排序、 选择排序、插入排序、快速排序、希尔算法、归并排序算法、基数排序、堆排序算法
- 算法学习-1 快速排序
- 算法入门学习----2.2快速排序
- 算法学习笔记之快速排序
- 基础算法学习笔记—快速排序
- 算法入门学习----2.2快速排序
- 快速排序 php实现 算法学习
- 算法第四版学习笔记之快速排序 QuickSort
- 算法入门学习----2.2快速排序
- 数据结构&算法学习笔记: 快速排序
- 算法入门学习----2.2快速排序
- 算法学习 - 归并排序,快速排序,冒泡排序
- 算法学习之排序(5)--快速排序
- 算法学习~分治法~快速排序
- 六种排序方法的学习(直接插入、希尔、冒泡、快速、选择、归并)
- 算法系统学习-1排序-快速排序
- 啊哈!算法 学习2 排序 - 快速排序 2分发排序
- OC学习之道:数据结构中几种常见的排序算法:选择排序,插入排序.快速排序
- 学习笔记之快速排序——quicklySort——基础算法——java
- 算法学习之排序学习之快速排序