一些常見的時間複雜度(小 --> 大)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...