Senarai Big-O untuk Fungsi PHP
Fungsi tatasusunan PHP terbina dalam boleh berbeza dengan ketara dalam kerumitan masanya dan memahami Big mereka -O membantu mengoptimumkan prestasi kod. Melalui penanda aras dan analisis kod, senarai komprehensif Big-O untuk pelbagai fungsi array_* telah disusun:
Lookups
- array_key_exists/isset: O( n) (hampir hampir dengan O(1))
- in_array/array_search: O(n)
Fungsi Barisan
- array_push: O(∑ var_i, untuk semua i)
- array_pop: O (1)
- array_shift: O(n)
- array_unshift: O(n ∑ var_i, untuk semua i)
Persimpangan, Kesatuan, Tolak
- array_intersect_key (100% persimpangan): O(Max(param_i_size) * ∑param_i_count, for all i)
- array_intersect (100% intersect): O(n^2 * ∑param_i_count, for all i)
- array_intersect_ass persimpangan): O(Max(param_i_size) * ∑param_i_count, for all i)
- array_diff: O(π param_i_size, for all i)
- array_diff_key: O(∑ param_i_size, for i !
- array_merge: O(∑ tatasusunan_i, i != 1)
- (kesatuan): O(n), dengan n ialah saiz tatasusunan kedua
- array_replace: O(∑ array_i, untuk semua i)
Rawak
- kocok: O(n)
- array_rand: O(n)
Jelas sekali Big-O
- array_fill: O(n)
- array_fill_keys: O(n)
- julat: O(n)
- array_splice: O(offset length)
- array_slice: O(panjang mengimbangi) atau O(n) jika panjang = NULL
- keys_array/values/reverse: O(n)
- array_pad: O(pad_size)
- array_flip: O(n)
- array_sum/product/reduce/filter/map/chunk/combine: O(n)
Nota pada Array Lookups
Walaupun carian tatasusunan dalam PHP secara teorinya O(n), mereka berkelakuan berkesan seperti O(1) untuk kebanyakan praktikal nilai. Penandaarasan mengesahkan gelagat ini, dengan peningkatan masa hanya sekitar 50% antara N=1 dan N=1,000,000 carian.
Atas ialah kandungan terperinci Apakah Notasi Big-O untuk Fungsi Tatasusunan PHP Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!