+ -
当前位置:首页 → 问答吧 → 求一个排序算法

求一个排序算法

时间:2011-09-23

来源:互联网

场景 对用户的产品按照用户排序显示 比如用户有1到100个产品,可以自定义 1到100的显示顺序 如何实现

目前实现 在每个产品记录一个字段 代表显示次序 然后从数据库order by 这个字段

麻烦来了,用户随便移动这次产品顺序 然后保存,怎么实现最小更新数据库 不要告诉更新100条

我的想法 第一个产品 排序数字1w,第二个2w 第100个 100W

如果用户改变了顺序,通过算法,找出次序需要改变的,插入过去 他的排序数字为前一个和后一次排序数字的和除以2 。如果前一个和后一个数字相邻 就对所有产品统统初始化一遍排序数字,这个概率比较小,没有用户没事老排序

目前困难 怎么快捷找出那些次序需要改变的产品。


或者有更好的实现方法。

作者: kcojj   发布时间: 2011-09-23

替换法, 假如用户输入位置5, 那就将目前为5位置的产品位置更换当前产品的10, 或者自动丢到结尾.
就是把A变成5位置后, B需要从5位置上移走, 不然会出现两条记录是5位置.

作者: spser   发布时间: 2011-09-23

看着有点晕,不知道有理解错没。
要移动的产品列表前面弄个多选框,其值为产品ID,提交以后不就是要修改的产品ID了嘛。
(如果前一个和后一个数字相邻 就对所有产品统统初始化一遍排序数字)这里的初始化依据是什么,初始化了那不是把客户不想修改的排序都干掉了,还有算出来的数值可能是已经存在的,那就有冲突了。

作者: TNT9527   发布时间: 2011-09-23

相关阅读 更多