日期:2014-05-20  浏览次数:20792 次

一组按升序排列的数字,修改一个,其他的联动修改,之后重新排列,怎么用java实现这个算法?
现在有一组数据,例如 1,2,3,4,将2修改为1,则将1修改为2,3、4不变,依旧是升序排列。如果是4修改为1,则原1、2、3后移以为,变为2、3、4,从新按升序排列,用java怎么实现?

------解决方案--------------------
需要两个变量:一个是要移动的那个数字m,一个是要移动到的位置n。
select id from table where num=m ; //先把id保存起来
if m>n :
update table set num=num+1 where num>=n and num<m
else if m<n 
update table set num=num-1 where num>m and num<=n

最后:update table set num=n where id=#id //之前保存的id