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

2,541 阅读1分钟

假设现在有4个数据需要排序,要求你提出实现方案 ​​

在这里插入图片描述

  • 实现1 初始权重为0,逐个更改

    给每一个元素都设置一个初始化权重0,通过每次设置每个元素的权重来进行排序 ,权重越大就会越前

    在这里插入图片描述

优点:实现简单,可以任意配置权重来安排任意位置

缺点:用户体验不好,需要对每个元素都需要设置权重来进行排序,如果对于权重的判断不够严谨,有可能会导致权重太大超出系统储存范围

  • 实现2 初始权重连续,批量更新权重

    给每一个元素设置从小到大的一段连续的权重,每次需要变更顺序的时候分两个步骤进行 1. 将自身的权重设置为想要的位置权重 2. 将比目标权重小(大)的记录的权重减1(加1)

    在这里插入图片描述

优点:实现简单,对用户体验较好,移动元素用户操作步骤较少

缺点:如果权重跨越越大,需要改动的记录越大,有可能会引起性能问题

  • 实现3 采用链表结构,修改指向

排序不再以权重的值排序来体现,而是使用链表的思想,每个元素都是存储他的前一个和后一个的元素地址,每次更改排序是只需要改动对应元素的指向即可

在这里插入图片描述

优点:更改变动少,不要考虑权重的范围值和记录变更太多导致的性能问题

缺点:实现较复杂,在数据库中存储不友好,不能通过一条orderby语句全部取出来