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
964 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!

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