一组按升序排列的数字,修改一个,其他的联动修改,之后重新排列,怎么用java实现这个算法?

zx520913 2012-09-07 04:50:57
现在有一组数据,例如 1,2,3,4,将2修改为1,则将1修改为2,3、4不变,依旧是升序排列。如果是4修改为1,则原1、2、3后移以为,变为2、3、4,从新按升序排列,用java怎么实现?
...全文
347 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
木小丰~ 2012-09-07
  • 打赏
  • 举报
回复
需要两个变量:一个是要移动的那个数字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
菖蒲老先生 2012-09-07
  • 打赏
  • 举报
回复
快下班了,要是下周一还没人答,我就帮你写。。。

[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

你描述的好难懂。。。


数据库中有四条记录,有个字段为“显示顺序”,值分别为1、2、3、4,可以根据这个字段按升序查询出来。这个值是可以修改的,任意修改一个值后,其他的联动修改,例如:将4修改为1,那么1边为2,2变为3,3变为4,最后还是按1、2、3、4查询出来。这个修改后的联动算法,怎么用java写,这样说清楚没?求帮助啊
[/Quote]
zx520913 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你描述的好难懂。。。
[/Quote]

数据库中有四条记录,有个字段为“显示顺序”,值分别为1、2、3、4,可以根据这个字段按升序查询出来。这个值是可以修改的,任意修改一个值后,其他的联动修改,例如:将4修改为1,那么1边为2,2变为3,3变为4,最后还是按1、2、3、4查询出来。这个修改后的联动算法,怎么用java写,这样说清楚没?求帮助啊
菖蒲老先生 2012-09-07
  • 打赏
  • 举报
回复
你描述的好难懂。。。

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧