Artikel ini menganalisis prinsip kaedah pengisihan tatasusunan dalam js melalui contoh. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
Baru-baru ini, dalam projek Baidu, saya perlu mengisih tatasusunan Sudah tentu, saya secara semula jadi memikirkan kaedah isihan tatasusunan pada mulanya Penggunaan kaedah ini adalah sangat mudah, kira-kira seperti berikut:
window.onload=function(){
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var arr2=["George","John","Thomas","James","Adrew","Martin"];
susunan fungsi(a,b){
kembalikan a-b;
}
console.log(arr.sort(arrsort)); //Pengisihan nombor memerlukan fungsi
console.log(arr2.sort()); // Surat tidak diperlukan
}
Tetapi saya tiba-tiba terfikir, mengapa penggunaan jenis begitu mudah dan apakah prinsipnya Jadi saya cuba menyusun tatasusunan tanpa isihan Prinsipnya ialah mencari nilai minimum tatasusunan dan memasukkannya ke dalam tatasusunan baru, kemudian padam nilai minimum dalam tatasusunan dan kemas kini Selepas tatasusunan, teruskan mencari nilai minimum untuk dimasukkan, dan gelung seperti ini:
window.onload=function(){
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var len=arr.length;
console.log(arr.join(","));
var newarr=[];
untuk(var i=0;i
newarr.push(Math.min.apply(null,arr)); //Masukkan nilai minimum ke dalam tatasusunan baharu
arr.splice(r(arr,Math.min.apply(null,arr)),1); //Selepas memasukkan, padamkan nilai minimum dengan segera
}
//Cari kedudukan nilai minimum dalam tatasusunan
fungsi r(s,v){
untuk(k dalam s){
Jika(s[k] == v){
pulangkan k;
}
}
}
console.log(newarr.join(","))
}
PS: Ini hanyalah kaedah yang saya tulis Prinsip pengurutan tidak boleh seperti ini. Anda juga boleh menggunakan kaedah buih untuk menyusun kod sudah tentu, kod di atas hanya untuk tatasusunan angka, untuk mengisih rentetan, anda boleh mempertimbangkan kaedah localeCompare rentetan.
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.