排序--归并排序

来源:互联网 发布:为什么淘宝开店开不了 编辑:程序博客网 时间:2024/06/06 07:47
<?phpclass Test{  public function shellSort(&$arr)  {    $this->sort($arr,0,count($arr)-1);  }  public function sort(&$arr,$lo,$hi)  {     if($lo >= $hi)     {       return;     }     $tempNum =intval(($hi - $lo)/2);     $mid = $lo + $tempNum;     $this->sort($arr,$lo,$mid);     $this->sort($arr,$mid+1,$hi);     $this->merge($arr,$lo,$mid,$hi);     print_r($arr);  }  public function merge(&$arr,$lo,$mid,$hi)  {    $m = $lo;    $n = $mid+1;    for($k = $lo;$k <= $hi;$k++)    {      $temps[$k] = $arr[$k];    }    for($i = $lo; $i<=$hi; $i++)    {      if($m > $mid)      {        $arr[$i] = $temps[$n++];      }      else if($n > $hi)      {        $arr[$i] = $temps[$m++];      }      else if($temps[$m] > $temps[$n])      {        $arr[$i] = $temps[$n++];      }      else      {        $arr[$i] = $temps[$m++];      }    }  }}$test = new Test();$params = array(5,8,7,6);$test->shellSort($params);
原创粉丝点击