读书人

一组按升序排列的数字修改一个其他

发布时间: 2012-09-20 09:36:50 作者: rapoo

一组按升序排列的数字,修改一个,其他的联动修改,之后重新排列,怎么用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

读书人网 >Java相关

热点推荐