Rumah >hujung hadapan web >tutorial js >Program JavaScript untuk mencari k elemen terbesar tatasusunan dalam susunan asal

Program JavaScript untuk mencari k elemen terbesar tatasusunan dalam susunan asal

WBOY
WBOYke hadapan
2023-09-01 11:17:061456semak imbas

JavaScript 程序按原始顺序查找数组的 k 个最大元素

Kami akan menggunakan kaedah pengisihan tatasusunan JavaScript dan teknik penghirisan untuk mencari k elemen terbesar tatasusunan dalam susunan asal. Mula-mula, kami mengisih tatasusunan dalam tertib menurun dan kemudian potong dari awal ke indeks kth untuk mendapatkan elemen k terbesar. Dengan mengekalkan susunan unsur asal, kepentingan dan konteks data kekal utuh, memudahkan kami menganalisis dan mentafsir keputusan.

kaedah

Kaedah mencari k elemen terbesar dalam tatasusunan dalam susunan asal boleh diterangkan seperti berikut -

  • Buat tatasusunan kosong baharu untuk menyimpan sehingga k elemen.

  • Gelung melalui tatasusunan input dan bandingkan setiap elemen dengan elemen dalam tatasusunan baharu.

  • Jika tatasusunan baharu mempunyai kurang daripada elemen k, cuma tambahkan elemen semasa pada tatasusunan baharu.

  • Jika tatasusunan baharu mempunyai elemen k, bandingkan elemen semasa dengan elemen terkecil dalam tatasusunan baharu.

  • Jika elemen semasa lebih besar daripada elemen terkecil, keluarkan elemen terkecil dan tambah elemen semasa pada tatasusunan baharu.

  • Akhir sekali, kembalikan tatasusunan baharu yang mengandungi sehingga k elemen dalam susunan asal ia muncul dalam tatasusunan input.

Contoh

Berikut ialah contoh JavaScript berfungsi yang lengkap untuk mencari k elemen terbesar tatasusunan dalam susunan asal -

function findKMaxElements(arr, k) {
   
   // Create a copy of the original array
   let sortedArr = [...arr];
   
   // Sort the copy of the array in descending order
   sortedArr.sort((a, b) => b - a);
   
   // Slice the first k elements of the sorted array
   let kMaxElements = sortedArr.slice(0, k);
   
   // Create a result array to store the k maximum elements in their original order
   let result = [];
   
   // Loop through the original array
   for (let i = 0; i < arr.length; i++) {
      
      // Check if the current element is in the kMaxElements array
      if (kMaxElements.includes(arr[i])) {
         
         // If yes, add it to the result array
         result.push(arr[i]);
         
         // Remove the element from the kMaxElements array
         
         // to keep track of the elements that have already been added to the result
         kMaxElements.splice(kMaxElements.indexOf(arr[i]), 1);
         
         // If the kMaxElements array is empty, it means all k maximum elements have been found
         if (kMaxElements.length === 0) {
            break;
         }
      }
   }
   
   // Return the result array
   return result;
}
// Test the function with an example array
let arr = [3, 2, 1, 4, 5];
let k = 3;
console.log(findKMaxElements(arr, k));

Penerangan

  • Fungsi findKMaxElements mengambil tatasusunan arr dan integer k #🎜 sebagai input🎜.

  • Langkah pertama ialah mencipta salinan tatasusunan asal

    arr dan mengisihnya dalam tertib menurun menggunakan kaedah sort. Ini akan membolehkan kita mencari elemen k terbesar dengan mudah.

    Kaedah
  • slice digunakan untuk mengekstrak elemen k pertama tatasusunan yang diisih dan menyimpannya dalam tatasusunan baharu kMaxElements.

    李>
  • Buat susunan

    hasil untuk menyimpan elemen k terbesar dalam susunan asal.

  • Gelung for digunakan untuk menggelung melalui tatasusunan asal

    arr. Untuk setiap elemen dalam tatasusunan, kod itu menyemak sama ada ia berada dalam tatasusunan kMaxElements menggunakan kaedah termasuk .

  • Jika elemen semasa berada dalam tatasusunan

    kMaxElements , tambahkannya pada tatasusunan hasil . Kaedah splice digunakan untuk mengalih keluar elemen daripada tatasusunan kMaxElements untuk menjejaki elemen yang telah ditambahkan pada hasil.

  • Gelung berterusan sehingga semua k elemen terbesar ditemui dan ditambah pada tatasusunan

    hasil, atau penghujung tatasusunan asal dicapai.

  • Langkah terakhir ialah mengembalikan tatasusunan

    hasil yang mengandungi elemen k terbesar dalam tatasusunan asal dalam susunan asal.

Atas ialah kandungan terperinci Program JavaScript untuk mencari k elemen terbesar tatasusunan dalam susunan asal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam