常見的冒泡,選擇排序,快速排序,插入排序......
自己閒着沒事寫了一些,感覺代碼還不錯:
【總結:只要有思路,就會事半功倍】
//排序1,支持升、降序
function sort($arr = [], $type=true){
$arr = $arr?$arr:[12,33,454,6,78,22,777,4,5,66,6];
$tmp = [];
foreach($arr as $key => $val){
$max = $type?0:999999999;
$index = 0;
foreach($arr as $k => $v){
if(true === $type){
if($v > $max){
$max = $v;
$index = $k;
}
}else{
if($v < $max){
$max = $v;
$index = $k;
}
}
}
array_push($tmp, $max);
unset($arr[$index]);
}
return $tmp;
}
//排序2 - 遞歸
function recurseSort(&$arr, &$tmp_arr, $type = true){
$max = $type ? 0 : 9999999;
$index = 0;
foreach ($arr as $key => $val){
if(true === $type){
if($val > $max){
$max = $val;
$index = $key;
}
}else{
if($val < $max){
$max = $val;
$index = $key;
}
}
}
array_push($tmp_arr, $max);
unset($arr[$index]);
if(!empty($arr)) $this->recurseSort($arr,$tmp_arr, $type);
}
//調用 true:降序,false:升序
$arr = [22,3,4,5,212,66,3,5,99,44,77];
$tmp = [];
$this->recurseSort($arr, $tmp, false);//true:降序,false:升序
var_dump($tmp);die;
//$tmp = $this->sort($arr, false);
//var_dump($tmp);die;