冒泡排序
代码语言:javascript
复制function bubbleSort($numbers) {
$cnt = count($numbers);
for ($i = 0; $i < $cnt; $i ) {
for ($j = 0; $j < $cnt - $i - 1; $j ) {
if ($numbers[$j] > $numbers[$j 1]) {
$temp = $numbers[$j];
$numbers[$j] = $numbers[$j 1];
$numbers[$j 1] = $temp;
}
}
}
return $numbers;
}
$num = array(20, 40, 60, 80, 30, 70, 90, 10, 50, 0);
bubbleSort($num);
快速排序
代码语言:javascript
复制function quickSort(&$arr){
if(count($arr)>1){
$k=$arr[0];
$x=array();
$y=array();
$_size=count($arr);
for($i=1;$i<$_size;$i ){
if($arr[$i]<=$k){
$x[]=$arr[$i];
}elseif($arr[$i]>$k){
$y[]=$arr[$i];
}
}
$x=quickSort($x);
$y=quickSort($y);
return array_merge($x,array($k),$y);
}else{
return$arr;
}
}
排序函数(类似 sql 的多字段排序)
代码语言:javascript
复制function sortByMultiCols($rowset, $args)
{
$sortArray = array();
$sortRule = '';
foreach ($args as $sortField => $sortDir)
{
foreach ($rowset as $offset => $row)
{
$sortArray[$sortField][$offset] = $row[$sortField];
}
$sortRule .= '$sortArray['' . $sortField . ''], ' . $sortDir . ', ';
}
if (empty($sortArray) || empty($sortRule)) { return $rowset; }
eval('array_multisort(' . $sortRule . '$rowset);');
return $rowset;
}