Bu soru, belirli bir dizinin rastgele bir karıştırmasını döndürmek için Fisher-Yates algoritması ile ilgilidir. Vikipedi sayfası onun karmaşıklığı O (n) olduğunu söylüyor, ama (n log) Ey olduğunu düşünüyorum.
Her yinelemede i, 1 ve i arasında rastgele bir tamsayı seçilir. Sadece tamsayıyı hafızaya yazmak O (log i) 'dir ve n yinelemesi olduğundan, toplam
O (log 1) + O (log 2) + ... + O (log n) = O (n log n)
ki saf algoritma daha iyi değil. Burada bir şey mi eksik?
Not: Naif algoritma, her öğeye (0,1) aralığında rastgele bir sayı atamak, ardından diziyi atanan numaralara göre sıralamaktır.