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 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.
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));
Fungsi findKMaxElements mengambil tatasusunan arr dan integer k #🎜 sebagai input🎜.
arr dan mengisihnya dalam tertib menurun menggunakan kaedah sort. Ini akan membolehkan kita mencari elemen k terbesar dengan mudah.
Kaedahslice digunakan untuk mengekstrak elemen k pertama tatasusunan yang diisih dan menyimpannya dalam tatasusunan baharu kMaxElements.
李>hasil untuk menyimpan elemen k terbesar dalam susunan asal.
arr. Untuk setiap elemen dalam tatasusunan, kod itu menyemak sama ada ia berada dalam tatasusunan kMaxElements menggunakan kaedah termasuk .
kMaxElements , tambahkannya pada tatasusunan hasil . Kaedah splice digunakan untuk mengalih keluar elemen daripada tatasusunan kMaxElements untuk menjejaki elemen yang telah ditambahkan pada hasil.
hasil, atau penghujung tatasusunan asal dicapai.
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!