[求助]怎样将移动次数减至n
按名次排序
利用元素的名次按照递增的次序对数组中的元素进行排列,使得a[0]<=a[1]<=...<=a[n-1]
各元素的名次在数组r[n]中,例如
一个数组a [4,3,9,3,7]
r 为 [2,0,4,1,3]
用一个附加的数组u
for(i=0; i<n; i++)
u[r[i]]=a[i];
for(i=0; i<n; i++)
a[i]=u[i];
即可完成,移动了2n次,问怎样才能将移动次数减至n ?
大家一起讨论啊,看看有没有什么好的方法