随机算法
介绍两种将输入随机化的方法:
随机排列数组
- 设A[1...n]A[1...n]A[1...n]为原始输入。
- 生成一个新数组P[1...n]P[1...n]P[1...n],其中Pi=random(1,n3)。P_i=random(1,n^3)。Pi=random(1,n3)。
- 以PPP为基准对AAA进行排序。
原址排列数组
for i=1 to nswap Ai with Arandom(i,n)
for~i=1~to~n\\
swap~A_i ~with ~A_{random(i,n)}
for i=1 to nswap Ai with Arandom(i,n)