이 질문은 주어진 배열의 무작위 셔플을 반환하는 Fisher-Yates 알고리즘과 관련이 있습니다. 위키 백과 페이지 의 복잡도가 O (n)의 것을 말한다, 그러나 나는 (N N 로그) O라고 생각합니다.
각 반복 i에서 임의의 정수는 1과 i 사이에서 선택됩니다. 단순히 메모리에 정수를 쓰는 것은 O (log i)이며 n 개의 반복이 있기 때문에 총계는
O (log 1) + O (log 2) + ... + O (log n) = O (n log n)
순진한 알고리즘이 아닙니다. 여기에 뭔가 빠졌습니까?
참고 : 순진 알고리즘은 (0,1) 간격으로 각 요소에 임의의 숫자를 할당 한 다음 할당 된 숫자와 관련하여 배열을 정렬하는 것입니다.