您好,登錄后才能下訂單哦!
冒泡排序:
1. 算法慢,不需要額外空間
2. 示例代碼:
$arr = [1,3,5,4,2,6,8,5,4,9,0]; function bubbleSort($arr){ //數組長度 -- 決定循環(huán)的次數(長度-1次循環(huán)) $arrLength = count($arr); for ($i=0; $i < $arrLength-1 ; $i++){ for($j=1; $j< $arrLength-1; $j++){ if ($arr[$j]>$arr[$j+1]) { $tmp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $tmp; } } } return $arr; } print_r(bubbleSort($arr));
快速排序:
1. 最高效,需要很大的空間
2. 示例代碼:
$arr = [1,3,5]; function quickSort($arr){ $arrLength = count($arr); if ($arrLength<=1) { return $arr; } $baseVal = $arr[0]; $leftArr = []; $rightArr = []; //因為第一個已被取出,所以從第二個開始 -- i=1 for($i=1; $i<$arrLength; $i++){ if ($baseVal > $arr[$i]) { $leftArr[] = $arr[$i]; } else{ $rightArr[] = $arr[$i]; } } $leftArr = quickSort($leftArr); $rightArr = quickSort($rightArr); return array_merge($leftArr,array($baseVal),$rightArr); } print_r(quickSort($arr));
函數排序:
sort();
1. 對數組進行排序;函數結束時,數組單元將被小到大排序,大寫在前
2. 示例代碼:
$fruits = ["lemon", "orange", "Lemon", "banana", "apple"]; sort ($fruits); $arr = []; foreach ($fruits as $key => $value) { $arr[$key] = $value; } print_r($arr);
ksort();
1. 主要用于關聯(lián)數組;對數組按照鍵名排序,保留鍵名到數據的關聯(lián)
2. 示例代碼:
$fruits = [ "d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple", ]; ksort ($fruits); $arr = []; foreach ($fruits as $key => $val) { $arr[$key] = $val; } print_r($arr);
usort();
1. 使用用戶自定義的比較函數對數組中的值進行排序,刪除原有鍵名
2. 示例代碼:
function mySort($a, $b) { if($a == $b){ return 0; } //根據返回值1或是-1進行排序; //-1:1為小到大; 1:-1為大到小 return ($a < $b)? 1 : -1; } $a = [3, 2, 5, 6, 1]; usort($a, "mySort"); $arr = []; foreach ($a as $key => $value){ $arr[$key] = $value; } print_r($arr);
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。