<.> r.next ()) `a roths to shuffle koleksi? " />
var r = new Random(); var shuffled = ordered.OrderBy(x => r.Next());
Algoritma ini bukan kaedah penyortiran rawak terbaik. Ia menyusun unsur -unsur berdasarkan nombor rawak yang diberikan kepada setiap elemen, mengakibatkan kerumitan masa adalah O (n log n). Ini jauh lebih rendah daripada algoritma Fisher-Yates (kerumitan masa adalah O (n)). <底> Mekanisme yang mendasari
Algoritma memberikan nombor rawak untuk setiap elemen dalam koleksi, dan kemudian menyusun unsur -unsur berdasarkan nombor ini. Proses ini secara rawak secara rawak urutan unsur -unsur, tetapi ini bukan operasi penyortiran rawak sebenar.
<合> kaedah penyortiran rawak yang lebih sesuai
Walaupun kaedah ini boleh menghasilkan hasil penyortiran rawak, ia bukan kaedah pertama kerana kecekapannya yang rendah. Algoritma penyortiran rawak Fisher-Yates mempunyai kerumitan pengiraan yang lebih rendah dan kecekapan yang lebih tinggi. Di samping itu, kaedah pengembangan shuffle khas dapat memberikan ekspresi operasi penyortiran rawak yang jelas dan ringkas.
Koleksi input ditukar kepada array. Gunakan fungsi yang telah ditetapkan (contohnya,
) elemen dalam senarai pertukaran rawak.kembali ke bursa.
Next
<能> Pengoptimuman Prestasi Atas ialah kandungan terperinci Adakah `OrderBy (x => r.next ())` Cara yang boleh dipercayai untuk mengosongkan koleksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!