Pengiraan Perbezaan Set yang Cekap dengan Tatasusunan Javascript
Mengira perbezaan set antara dua tatasusunan boleh menjadi operasi penting dalam manipulasi data dan teori set. Dalam Javascript, di mana tatasusunan berfungsi sebagai struktur data utama, mencari cara yang cekap dan elegan untuk melaksanakan tugas ini adalah penting.
Satu pendekatan mudah ialah memanfaatkan fungsi tatasusunan asli.penapis(), seperti yang ditunjukkan di bawah:
<code class="js">var A = [1, 2, 3, 4]; var B = [1, 3, 4, 7]; var diff = A.filter(function(x) { return B.indexOf(x) < 0; });</code>
Pendekatan ini menggunakan fungsi indexOf() untuk menentukan sama ada elemen daripada A wujud dalam B. Jika tidak, elemen itu ditambahkan pada tatasusunan perbezaan yang terhasil. Walaupun mudah, ia mempunyai kelemahan untuk melakukan carian linear dalam tatasusunan B untuk setiap elemen A, yang berpotensi menghasilkan kerumitan masa O(n^2).
Untuk tatasusunan yang lebih besar, prestasi boleh dipertingkatkan dengan menggunakan algoritma berikut:
<code class="js">var s = new Set(B); var diff = A.filter(function(x) { return !s.has(x); });</code>
Menggunakan set untuk S memastikan ujian keahlian dilakukan dalam masa yang tetap, menghasilkan kerumitan masa keseluruhan O(n).
Atas ialah kandungan terperinci Bagaimana Mengira Set Perbezaan dengan Cekap dalam Tatasusunan Javascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!