七大排序问题之归并排序(PHP版)
来源:互联网 发布:java中getresource方法 编辑:程序博客网 时间:2024/06/06 03:25
<?php $arr=array("1","5","9","6","8","2","3","4","7"); function merge(&$array,$p,$q,$r){ $n1=$q-$p+1; $n2=$r-$q; for($i=0;$i<$n1;$i++){ $L[$i]=$array[$p+$i]; } for($j=0;$j<$n2;$j++){ $R[$j]=$array[$q+$j+1]; } $L[$n1]=999; $R[$n2]=999; $i=0;$j=0; for($k=$p;$k<=$r;$k++){ if($L[$i]<$R[$j]){ $temp=$L[$i]; $i++; } else{ $temp=$R[$j]; $j++; } $array[$k]=$temp; } dispalay($array); }function mergeSort(&$array,$p,$r){if($p<$r){$q=floor(($p+$r)/2);mergeSort($array,$p,$q);mergeSort($array,$q+1,$r);merge($array,$p,$q,$r);}} function dispalay(&$arr) { for($i=0;$i<count($arr);$i++) echo $arr[$i].":"; echo "\n"; } mergeSort($arr, 0, count($arr)-1); //dispalay($arr)."<br>";
输出结果为:
1:5:9:6:8:2:3:4:7:
1:5:9:6:8:2:3:4:7:
1:5:9:6:8:2:3:4:7:
1:5:6:8:9:2:3:4:7:
1:5:6:8:9:2:3:4:7:
1:5:6:8:9:2:3:4:7:
1:5:6:8:9:2:3:4:7:
1:2:3:4:5:6:7:8:9:
结果分析:
1.对于,原始序列(1,5,9,6,8,2,3,4,7),进行两两划分
2.第一趟排序是对1,5进行归并排序
3.第二趟排序是对1,5,9进行归并排序
4.第三趟排序是对6,8进行归并排序
5.第四趟排序是对1,5,9,6,8进行归并排序
6.第五趟排序是对2,3进行归并排序
7.第六趟排序是对4,7进行归并排序
8.第七趟排序是对2,3,4,7进行归并排序
9.第八趟排序是对1,5,6,8,9,2,3,4,7进行归并排序
0 0
- 七大排序问题之归并排序(PHP版)
- 七大排序之归并排序
- 七大排序问题之插入排序(PHP版)
- 七大排序问题之冒泡排序(PHP版)
- 七大排序问题之简单选择排序(PHP版)
- 七大排序算法系列之归并排序
- PHP排序之归并排序
- 七大排序问题之快速排序(参考算法导论PHP版)
- 数据结构和算法系列8 七大排序之归并排序
- 排序问题-归并排序
- 七大排序之希尔排序
- 七大排序之快速排序
- 七大排序之堆排序
- 排序之归并排序
- 排序之归并排序
- 排序之归并排序
- 排序之归并排序
- 排序之归并排序
- Google Hacking
- makefile同名目标处理
- Android Studio 圆形头像
- Windows10开启热点
- 小小银联卡系统(控制台)
- 七大排序问题之归并排序(PHP版)
- 2016-01-02
- 对Integer的再认识
- [Java开发之路](10)DOM解析XML文档
- this、getBasecontext和getApplicationContext区别
- cccc
- 解决jquery.datatable.js无法使用colspan的问题
- C++中导致二义性错误
- android开发知识转载(长期更新)