数据排序权重设置实现方案

假设现在有4个数据需要排序,要求你提出实现方案
​​在这里插入图片描述

初始权重为0,逐个更改

  • 实现1
    给每一个元素都设置一个初始化权重0,通过每次设置每个元素的权重来进行排序
    ,权重越大就会越前在这里插入图片描述
    优点:实现简单,可以任意配置权重来安排任意位置
    缺点:用户体验不好,需要对每个元素都需要设置权重来进行排序,如果对于权重的判断不够严谨,有可能会导致权重太大超出系统储存范围

初始权重连续,批量更新权重

  • 实现2
    给每一个元素设置从小到大的一段连续的权重,每次需要变更顺序的时候分两个步骤进行
    1. 将自身的权重设置为想要的位置权重
    2. 将比目标权重小(大)的记录的权重减1(加1)
    在这里插入图片描述
    优点:实现简单,对用户体验较好,移动元素用户操作步骤较少
    缺点:如果权重跨越越大,需要改动的记录越大,有可能会引起性能问题

采用链表结构,修改指向

  • 实现3
    排序不再以权重的值排序来体现,而是使用链表的思想,每个元素都是存储他的前一个和后一个的元素地址,每次更改排序是只需要改动对应元素的指向即可 在这里插入图片描述
    优点:更改变动少,不要考虑权重的范围值和记录变更太多导致的性能问题
    缺点:实现较复杂,在数据库中存储不友好,不能通过一条orderby语句全部取出来
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值