php 排序2


php内置函数 array_multisort()写的一个排序十分强大,十分简单;
排序顺序旗标 :
SORT_ASC - 排序成上升的顺序
SORT_DESC - 排序成下降的顺序 
排序型态旗标 :
SORT_REGULAR - 正常的比较项目 
SORT_NUMERIC - 以数字比较项目 
SORT_STRING - 看作是字符串来比较项目

<?php
$arr=array(32,33,44,66,234,158,278,429,95,876);
array_multisort ($arr, SORT_ASC, SORT_NUMERIC); //这个函数真强
echo "<br>正序:<br>";
foreach($arr as $key=>$val){
   echo $val."<br>";
}
echo "<br>倒序:<br>";
$arr2=array_reverse($arr);
foreach($arr2 as $key2=>$val2){
   echo $val2."<br>";
} 
?>

<?php
//我测试的好用的:插入排序 
$arr=array(6,3,5,6,77,22);
foreach($arr as $key=>$val){
   echo "$key=>$val<br>";
}
insert_sort($arr);
function insert_sort($arr){
$count = count($arr);
echo "数组:".$count."<br>";
for($i=1; $i<$count; $i++){
   $tmp = $arr[$i];
   $j = $i - 1;
   while($arr[$j] > $tmp){
    $arr[$j+1] = $arr[$j];
    $arr[$j] = $tmp;
    $j--;
   }
}
foreach($arr as $key=>$val){
   echo "$val ";
}
echo "<br>";
$arr2 = array_reverse($arr);

foreach($arr2 as $key=>$val){
   echo "$val ";
}

}
?>

-----------------------------------------------------------

以下是别人写的:

<?
//插入排序(一维数组)
function insert_sort($arr){
 $count = count($arr);
 for($i=1; $i<$count; $i++){
  $tmp = $arr[$i];
  $j = $i - 1;
  while($arr[$j] > $tmp){
   $arr[$j+1] = $arr[$j];
   $arr[$j] = $tmp;
   $j--;
  }
 }
 return $arr;
}
  
//选择排序(一维数组)
function select_sort($arr){
 $count = count($arr);
 for($i=0; $i<$count; $i++){
  $k = $i;
  for($j=$i+1; $j<$count; $j++){
   if ($arr[$k] > $arr[$j])
    $k = $j;
   if ($k != $i){
    $tmp = $arr[$i];
    $arr[$i] = $arr[$k];
    $arr[$k] = $tmp;
   }
  }
 }
 return $arr;
}
  

 

 
 
posted @ 2012-11-21 17:04  joy696163  阅读(267)  评论(0编辑  收藏  举报