2017-01-05 1 views

답변

0
for i := n - k + 1 to n 
    A[i] := A[1] 
end for 

for i := 1 to n - k 
    while A[A[i]] != A[i] 
     swap(A[i], A[A[i]]) 
    end while 
end for 

for i := 1 to n 
    if A[i] != i then 
     print i 
    end if 
end for 

코드는 O (n) 시간에 실행됩니다. 스왑은 if A[i] != i에서만 발생합니다.