一些排序
当前位置:首页 ----> Web开发 ----> Php
关键词:PHP,Phzzy
Phzzy:
一些排序      复制PHP内容到剪贴板PHP代码: <?php $array = array(); for($i = 0 ; $i < 20 ; ) {  $temp = floor( rand(1,1000) );  if(!in_array($temp , $array , true))  {  $array[$i] = $temp;  $i++;  } } print_num($array , 'O' , 0); // 输出原始数据 insertSort($array); // 普通插入排序 BInsertSort($array); // 折半插入排序 ///////////////////////////////////////////////// ///////////////////////////////////////////////// // 普通插入排序 function insertSort($a) {  list ($start_time, $decimal) = explode(' ', microtime());  $start_time += $decimal;    $array = array(0 , $a[0] , 9999);  for($i = 1 ; $i < count($a) ; $i++)  {  $temp = $a[$i];  for($j = 1 ; $j < count($array) ; $j++)  {  if( $temp >= $array[$j - 1] && $temp < $array[$j] )  {  // move array to back  for($k = count($array) ; $k > $j ; $k--)  {  $array[$k] = $array[$k - 1];  }  // insert the new item  $array[$j] = $temp;  break;  }  }  }  array_shift($array);  array_pop($array);    list($end_time, $decimal) = explode(' ', microtime());  $end_time += $decimal - $start_time;    print_num($array , 'InsertSort' , $end_time); } // 折半插入排序 function BInsertSort($a) {  list ($start_time, $decimal) = explode(' ', microtime());  $start_time += $decimal;    $array = array(0 , $a[0] , 9999);  for($i = 1 ; $i < count($a) ; $i++)  {  $temp = $a[$i];  $low = 0;  $high = count($array) - 1;  while($low <= $high)  {  $m = intval(($low + $high + 1) / 2);  if( $temp >= $array[$m - 1] && $temp < $array[$m] )  {  break;  }  if( $temp >= $array[$m] )  {  $low = $m;  }  else  {  $high = $m;  }  }  // move array to back  for($k = count($array) ; $k > $m ; $k--)  {  $array[$k] = $array[$k - 1];  }  // insert the new item  $array[$m] = $temp;  }  array_shift($array);  array_pop($array);    list($end_time, $decimal) = explode(' ', microtime());  $end_time += $decimal - $start_time;    print_num($array , 'BInsertSort' , $end_time); } ////////////////////////////////////////////////// ////////////////////////////////////////////////// function print_num($array , $prefix , $time) {  echo $prefix . '(' . substr($time, 0, 8) . 's): ';  foreach($array as $v)  {  echo $v . ' ';  }  echo "<hr />"n"; } [ 本帖最后由 Phzzy 于 2006-11-6 22:54 编辑 ]


hy0kl:
此帖怎样没有后话......


leehui1983:
算法微微有点弱


roast:
一句话,代码质量有待加强....:(
原文出处:http://bbs.phpchina.com/viewthread.php?tid=11850