Rumah > Artikel > hujung hadapan web > Program JavaScript untuk mengira kekerapan elemen tatasusunan
Mengira kekerapan bermakna kita perlu mengira bilangan kali elemen dalam tatasusunan muncul dalam tatasusunan yang diberikan. Kita boleh menggunakan beberapa struktur data terbina dalam seperti peta untuk mendapatkan frekuensi atau kita boleh mengisih tatasusunan untuk mendapatkan frekuensi elemen tatasusunan. Kami akan membincangkan kedua-dua kaedah, mari lihat satu persatu -
Dalam kaedah ini kita akan mengisih tatasusunan dan menyemak sama ada elemen semasa adalah sama dengan elemen sebelumnya dan jika tatasusunan semasa tidak sama maka ini adalah elemen baharu dan kekerapan elemen sebelumnya sehingga kiraan adalah pembolehubah kami Ini akan digunakan untuk menambah bilangan elemen.
Pertama, kami akan mengisih tatasusunan menggunakan kaedah pengisihan terbina dalam.
Kami akan mencipta tatasusunan yang akan menyimpan elemen dalam tatasusunan yang diberikan dan frekuensi masing-masing.
Kami akan mencipta "kiraan" pembolehubah untuk menyimpan bilangan kejadian unsur semasa.
Kami akan lelaran ke atas tatasusunan dan pada setiap lelaran semak jika elemen semasa adalah sama dengan elemen sebelumnya.
Jika elemen semasa adalah sama dengan elemen sebelumnya, maka kita akan menambah nilai kiraan.
Jika elemen semasa tidak sama dengan elemen sebelumnya, maka kami akan menyimpan kiraan elemen sebelumnya sebagai pasangan kunci dalam tatasusunan yang menunjukkan kekerapan elemen semasa.
李>Selain itu, kami akan mengemas kini nilai kiraan kepada 1.
Selepas melelaran tatasusunan kami akan menyimpan kekerapan elemen terakhir tatasusunan yang diisih kerana ia tidak akan disimpan dan gelung berakhir.
Mari lihat kod yang melaksanakan kaedah di atas dan tambah serta fahaminya dengan cara yang lebih baik.
// given array var arr = [ 1, 4, 5, 6, 2, 2, 2, 4, 5, 5, 4, 6, 9, 1, 2, 2, 3] // sorting the array arr.sort() var count = 1 for(var i = 1;i<arr.length; i++){ if(arr[i] == arr[i-1]) { count++; } else { console.log("The frequency of "+ arr[i-1] + " is: " + count); count = 1; } } console.log("The frequency of "+ arr[arr.length-1] + " is: " + count);
Kerumitan masa kod di atas ialah O(N*log(N)), kerana kami telah mengisih tatasusunan, dan masa yang diperlukan ialah N*log(N), dan kami telah melintasi tatasusunan sekali, yang memerlukan O( N ) masa, di mana N ialah bilangan elemen yang terdapat dalam tatasusunan yang diberikan.
Kerumitan ruang kod di atas ialah O(1) kerana kami tidak menggunakan sebarang ruang tambahan, tetapi jika kami ingin menyimpan frekuensi, maka akan ada ruang tambahan dan itu adalah O(N).
Peta ialah struktur data yang menyimpan nilai dalam bentuk pasangan kunci, dan data boleh dikemas kini kemudian. Menambah atau mengemas kini data dalam peta mengambil masa logaritma, tetapi tidak memerlukan pengisihan tatasusunan, yang bermaksud kita tidak perlu menukar tatasusunan seperti yang kita lakukan dalam atur cara sebelumnya. Mari kita lihat kaedahnya dahulu dan kemudian kita akan masuk ke bahagian pengekodan -
Pertama, kami akan mencipta peta menggunakan kata kunci baharu.
Kami akan mengulangi tatasusunan dan menyemak setiap elemen.
Jika unsur semasa wujud dalam peta, maka kami akan menambah nilai yang disimpan untuk elemen semasa, iaitu kekerapan.
Jika elemen tidak disimpan maka kami menambahnya sebagai kunci pada peta dan memberikannya nilai 1.
Selepas mengulang tatasusunan, kita boleh mencetak nilai yang disimpan dalam peta sebagai pasangan nilai kunci.
Kami telah melihat cara kod dilaksanakan, sekarang mari pergi ke bahagian pelaksanaan untuk memahami kod dengan lebih baik -
// given array var arr = [ 1, 4, 5, 6, 2, 2, 2, 4, 5, 5, 4, 6, 9, 1, 2, 2, 3] var map = new Map() for(var i = 0;i<arr.length; i++){ if(map.has(arr[i])){ var k = map.get(arr[i]); map.delete(arr[i]); map.set(arr[i],k+1) } else{ map.set(arr[i],1); } } console.log(map)
Kerumitan masa kod di atas ialah O(N*log(N)), dengan N ialah saiz tatasusunan, faktor atau log bergantung pada cara pemetaan berfungsi. Kod di atas mempunyai kerumitan ruang O(N) dan memerlukan menyimpan elemen dalam peta.
Menggunakan peta untuk mencari frekuensi adalah baik kerana kita tidak perlu menukar tatasusunan yang diberikan.
Dalam tutorial ini, kami akan memperkenalkan program JavaScript untuk mengira kekerapan elemen tatasusunan. Mengira kekerapan bermakna kita perlu mengira bilangan kali elemen dalam tatasusunan muncul dalam tatasusunan tertentu. Kami telah melihat dua cara untuk menyelesaikan masalah yang diberikan, satu ialah mengisih elemen menggunakan fungsi pengisihan terbina dalam dan satu lagi ialah melakukannya menggunakan struktur data peta terbina dalam.
Atas ialah kandungan terperinci Program JavaScript untuk mengira kekerapan elemen tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!