我看到一个面试问题,要求
Interchange arr[i] and i for i=[0,n-1]
示例:输入:1 2 4 5 3 0
答案:5 0 1 4 2 3
解释:a[1]=2 in input , so a[2]=1 in answer so on
我尝试了这个但没有得到正确的答案。
我能做的是:for a pair of numbers p and q , a[p]=q and a[q]=p .
欢迎任何想法如何改进它。
FOR(j,0,n-1)
{
i=j;
do{
temp=a[i];
next=a[temp];
a[temp]=i;
i=next;
}while(i>j);
}
print_array(a,i,n);
如果它包含带有一些解释的伪代码,我会更容易理解您的答案。
编辑:我来到 knpw 它是循环排列所以改变了问题标题。