求一个排序算法
时间:2011-09-23
来源:互联网
场景 对用户的产品按照用户排序显示 比如用户有1到100个产品,可以自定义 1到100的显示顺序 如何实现
目前实现 在每个产品记录一个字段 代表显示次序 然后从数据库order by 这个字段
麻烦来了,用户随便移动这次产品顺序 然后保存,怎么实现最小更新数据库 不要告诉更新100条
我的想法 第一个产品 排序数字1w,第二个2w 第100个 100W
如果用户改变了顺序,通过算法,找出次序需要改变的,插入过去 他的排序数字为前一个和后一次排序数字的和除以2 。如果前一个和后一个数字相邻 就对所有产品统统初始化一遍排序数字,这个概率比较小,没有用户没事老排序
目前困难 怎么快捷找出那些次序需要改变的产品。
或者有更好的实现方法。
目前实现 在每个产品记录一个字段 代表显示次序 然后从数据库order by 这个字段
麻烦来了,用户随便移动这次产品顺序 然后保存,怎么实现最小更新数据库 不要告诉更新100条
我的想法 第一个产品 排序数字1w,第二个2w 第100个 100W
如果用户改变了顺序,通过算法,找出次序需要改变的,插入过去 他的排序数字为前一个和后一次排序数字的和除以2 。如果前一个和后一个数字相邻 就对所有产品统统初始化一遍排序数字,这个概率比较小,没有用户没事老排序
目前困难 怎么快捷找出那些次序需要改变的产品。
或者有更好的实现方法。
作者: kcojj 发布时间: 2011-09-23
替换法, 假如用户输入位置5, 那就将目前为5位置的产品位置更换当前产品的10, 或者自动丢到结尾.
就是把A变成5位置后, B需要从5位置上移走, 不然会出现两条记录是5位置.
就是把A变成5位置后, B需要从5位置上移走, 不然会出现两条记录是5位置.
作者: spser 发布时间: 2011-09-23
看着有点晕,不知道有理解错没。
要移动的产品列表前面弄个多选框,其值为产品ID,提交以后不就是要修改的产品ID了嘛。
(如果前一个和后一个数字相邻 就对所有产品统统初始化一遍排序数字)这里的初始化依据是什么,初始化了那不是把客户不想修改的排序都干掉了,还有算出来的数值可能是已经存在的,那就有冲突了。
要移动的产品列表前面弄个多选框,其值为产品ID,提交以后不就是要修改的产品ID了嘛。
(如果前一个和后一个数字相邻 就对所有产品统统初始化一遍排序数字)这里的初始化依据是什么,初始化了那不是把客户不想修改的排序都干掉了,还有算出来的数值可能是已经存在的,那就有冲突了。
作者: TNT9527 发布时间: 2011-09-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28