Rumah  >  Artikel  >  hujung hadapan web  >  Analisis prinsip kaedah pengisihan tatasusunan dalam kemahiran js_javascript

Analisis prinsip kaedah pengisihan tatasusunan dalam kemahiran js_javascript

WBOY
WBOYasal
2016-05-16 16:31:001538semak imbas

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:

Salin kod Kod adalah 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:

Salin kod Kod adalah seperti berikut:
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.

Kenyataan:
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