Rumah > Artikel > hujung hadapan web > Bolehkah Isihan JavaScript Tidak Stabil Menjadi Stabil?
Isih Stabil dalam JavaScript dengan Twist
Mengisih koleksi objek ialah tugas biasa dalam pengaturcaraan, selalunya memerlukan kestabilan untuk mengekalkan yang asal susunan unsur yang sama. Walau bagaimanapun, kestabilan mungkin tidak wujud dalam algoritma pengisihan yang digunakan.
Memperkenalkan Isihan Tidak Stabil yang Stabil
Pendekatan yang memeranjatkan namun berkesan melibatkan mengubah isihan tidak stabil berfungsi menjadi stabil. Sebelum menyusun, kedudukan semua elemen diperolehi. Keadaan isihan diubah suai untuk mempertimbangkan kedua-dua kunci utama dan kedudukan asal elemen sebagai kunci sekunder.
Dengan menggunakan kedudukan sebagai pemecah seri sebagai perbandingan, kestabilan hasil isihan akhir dapat dipastikan.
Pelaksanaan dalam JavaScript
Coretan di bawah menyediakan contoh pelaksanaan dalam JavaScript:
<code class="javascript">function stableSort(array, key) { const positions = []; for (let i = 0; i < array.length; i++) { positions[i] = i; } array.sort((a, b) => { const keyComparison = a[key].localeCompare(b[key]); return keyComparison || positions[a] - positions[b]; }); }</code>
Dalam kod ini, fungsi stableSort mengisih tatasusunan mengikut yang ditentukan kunci dengan cara yang stabil. Tatasusunan kedudukan menangkap kedudukan awal elemen. Keadaan isihan bergantung pada localeCompare untuk perbandingan rentetan dan kembali kepada perbandingan kedudukan sebagai pemecah seri.
Pendekatan ini menawarkan fleksibiliti untuk memanfaatkan sebarang algoritma pengisihan yang tidak stabil sambil mengekalkan kestabilan untuk elemen yang sama.
Atas ialah kandungan terperinci Bolehkah Isihan JavaScript Tidak Stabil Menjadi Stabil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!