快速排序屬於交換排序,是一種不穩定排序,平均時間複雜度爲
O(nlog2^n)
,最好狀況時間複雜度爲O(nlog2^n)
,最壞狀況時間複雜度爲O(n^2)
。php
<?php function quickSort($array) { //判斷參數是不是一個數組 if (!is_array($array)) return false; //遞歸出口:數組長度爲1,直接返回數組 $length = count($array); if ($length <= 1) return $array; //數組元素有多個,則定義兩個空數組 $left = $right = []; //使用for循環進行遍歷,把第一個元素當作比較的對象 for ($i = 1; $i < $length; $i++) { //判斷當前元素的大小 if ($array[$i] < $array[0]){ $left[] = $array[$i]; } else { $right[] = $array[$i]; } } //遞歸調用 $left = quickSort($left); $right = quickSort($right); //將全部的結果合併 return array_merge($left, [$array[0]], $right); } $array = [1, 3, 5, 18, 9, 2, 4, 6, 5, 0, 10, 29, 15]; print_r(quickSort($array));
個人博客即將搬運同步至騰訊雲+社區,邀請你們一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=2pegbhfy77y80數組