<?php function mergeSort(&$arr){ $len = count($arr); msort($arr,0,$len-1); } function msort(&$arr,$low,$high){ if($low<$high){ $mid = floor(($low+$high)/2); msort($arr, $low, $mid); msort($arr,$mid+1,$high); mergeArray($arr,$low,$mid,$high); } } function mergeArray(&$arr,$low,$mid,$high){ $i = $low; $j = $mid+1; while($i<=$mid && $j<=$high){ if($arr[$i]<$arr[$j]){ $tmp[] = $arr[$i++]; }else{ $tmp[] = $arr[$j++]; } } while($i<=$mid){ $tmp[] = $arr[$i++]; } while($j<=$high){ $tmp[] = $arr[$j++]; } $len = count($tmp); for($k=0;$k<$len;$k++){ $arr[$low+$k] = $tmp[$k]; } } $arr = array(1,2,3,7,9,0,4,6,5,1); mergeSort($arr); print_r($arr); ?>
时间: 2024-12-29 11:31:21