Rumah >hujung hadapan web >tutorial js >Bolehkah Array.sort() Kocok Tatasusunan, dan Jika Ya, Seberapa Rawak?
Bolehkah anda mengocok tatasusunan menggunakan Array.sort()?
Walaupun keraguan awal, kaedah Array.sort() sememangnya boleh digunakan untuk shuffling tatasusunan. Begini cara ia berfungsi:
Kebaikan dan Keburukan Menggunakan Array.sort() untuk Kocok
Kelebihan:
Kelemahan:
Mengukur Rawak Keputusan
Untuk mengukur rawak teknik shuffling, seseorang boleh menjalankan ujian empirikal dan membandingkan keputusan dengan nilai yang dijangkakan. . Contohnya, seseorang boleh mengira kebarangkalian setiap pilih atur yang mungkin dan membandingkannya dengan taburan seragam.
Algoritma Kocok Alternatif (Fisher–Yates)
Semasa menggunakan Array. sort() adalah mudah, algoritma shuffling yang lebih optimum dan terkenal ialah Fisher–Yates shuffle:
function shuffle(array) { var tmp, current, top = array.length; if (top) while (--top) { current = Math.floor(Math.random() * (top + 1)); tmp = array[current]; array[current] = array[top]; array[top] = tmp; } return array; }
Algoritma ini cekap (O(n)) dan menjamin pengedaran hasil yang seragam.
Atas ialah kandungan terperinci Bolehkah Array.sort() Kocok Tatasusunan, dan Jika Ya, Seberapa Rawak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!