PHP基本的排序演算法

2021-09-01 00:10:03 字數 953 閱讀 9623

一些常見的時間複雜度(小 --> 大)

o(1) o(log2n) o(n) o(nlog2n) o(n^2) o(n^3) o(2^n) o(n!) o(n^n)

這四個排序時間複雜度 都是 o(n^2)

空間複雜度 快速排序 log2n - o(n) 冒泡 選擇 插入 o(1)

/**

* @param $arr

* @return mixed

* 選擇排序

*/function num_sort($arr)

}if($key != $i)

}return $arr;

}/**

* @param $arr

* @return mixed

* 氣泡排序

*/function num_sort2($arr)}}

return $arr;

}/**

* @param $arr

* @return mixed

* 插入排序

*/function num_sort3($arr)}}

return $arr;

}/**

* @param $arr

* @return array

* 快速排序

*/function num_sort4($arr)else

}$left_arr = num_sort4($left_arr);

$right_arr = num_sort4($right_arr);

$new_arr = array_merge($left_arr,[$arr[0]],$right_arr);

return $new_arr;

}$arr = [9,8,10,3,7,26,8];

print_r(num_sort4($arr));

PHP中基本排序演算法

思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即,每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。實現 arr array 1,43,54,62,21,66,32,78,36,76,39 functio...

php的基本演算法 和排序方法

有5個人偷了一堆蘋果,準備在第二天分贓。晚上,有一人遛出來,把所有菜果分成5份,但是多了乙個,順手把這個扔給樹上的猴了,自己先拿1 5藏了。沒想到其他四人也都是這麼想的,都如第乙個人一樣分成5份把多的那乙個扔給了猴,偷走了1 5。第二天,大家分贓,也是分成5份多乙個扔給猴了。最後一人分了乙份。問 共...

使用PHP實現幾個基本的排序演算法

近幾日有空,發現自己對一些基本的排序演算法已經忘記,遂使用php來實現,複習一下。和注釋如下 class class sort echo self array2string data i.echo 直接選擇排序結束 改良的直接選擇排序 public static function directsel...