Program JavaScript untuk mengira kekerapan elemen tatasusunan

WBOY
Lepaskan: 2023-09-21 08:01:03
ke hadapan
1078 orang telah melayarinya

用于计算数组元素频率的 JavaScript 程序

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 -

Isih tatasusunan

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.

Kaedah

  • 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.

Contoh

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);
Salin selepas log masuk

Kerumitan masa dan ruang

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).

Berapa kerap semua elemen peta digunakan

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 -

Kaedah

  • 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.

Contoh

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)
Salin selepas log masuk

Kerumitan masa dan ruang

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.

Kesimpulan

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!

sumber:tutorialspoint.com
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!