Rumah > pembangunan bahagian belakang > tutorial php > Apakah Notasi Big-O untuk Fungsi Tatasusunan PHP Biasa?

Apakah Notasi Big-O untuk Fungsi Tatasusunan PHP Biasa?

Patricia Arquette
Lepaskan: 2024-12-07 00:43:11
asal
844 orang telah melayarinya

What are the Big-O Notations for Common PHP Array Functions?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan