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;
}