Rumah > pembangunan bahagian belakang > tutorial php > Apakah Kerumitan Masa Besar-O bagi Fungsi Tatasusunan PHP Biasa?

Apakah Kerumitan Masa Besar-O bagi Fungsi Tatasusunan PHP Biasa?

DDD
Lepaskan: 2024-12-07 11:01:12
asal
875 orang telah melayarinya

What are the Big-O Time Complexities of Common PHP Array Functions?

Big-O untuk Fungsi PHP

Apabila bekerja dengan PHP, kecekapan pelbagai fungsi terbina dalam boleh berbeza dengan ketara. Artikel ini bertujuan untuk memberikan cerapan tentang masa-O besar teori (atau praktikal) mereka.

Pencarian

  • array_key_exists: O(n), tetapi dekat dengan berkesan kepada O(1) disebabkan carian cincang.
  • isset($array[$index]): O(n), juga hampir dengan O(1) kerana carian cincangan.
  • in_array: O(n), lebih perlahan daripada carian berasaskan cincang.
  • array_search: O(n), serupa dengan in_array.

Baris gilir Fungsi

  • array_push: O(∑ var_i, untuk semua i)
  • array_pop: O(1)
  • array_shift: O(n), re -mengindeks kekunci.
  • array_unshift: O(n ∑ var_i, untuk semua i), lebih perlahan kerana pengindeksan semula.

Persimpangan Tatasusunan, Kesatuan, Tolak

  • kunci_bersilangan tatasusunan: O(Max( param_i_size)*∑param_i_count, untuk semua i) jika persimpangan adalah 100%.
  • array_intersect: O(n^2*∑param_i_count, untuk semua i) jika persilangan ialah 100%.
  • array_intersect_assoc: Sama seperti array_intersect_key.
  • array_intersect_key O(π param_i_size, untuk semua i), produk semua saiz param.
  • array_diff_key: O(∑ param_i_size, for i != 1).

Rawak

  • kocok: O(n)
  • array_rand: O(n)

Obvious Big-O

  • array_fill: O(n)
  • array_fill_keys: O(n)
  • julat: O(n)
  • array_splice: O(offset length)
  • array_slice: O(offset length) atau O(n) jika panjang ialah NULL
  • array_keys: O(n )
  • nilai_tatasusunan: O(n)
  • array_reverse: O(n)

Nota

  1. Semua pengiraan menganggap carian hash ialah O(1 ).
  2. Prestasi asimptotik mungkin berbeza bergantung pada butiran pelaksanaan khusus dan input data.
  3. Array adalah berasaskan sifar, jadi array_push menolak ke penghujung tatasusunan.

Atas ialah kandungan terperinci Apakah Kerumitan Masa Besar-O bagi 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan