有一个物品列表,默认按照发布的时间 自增 ID 排序例如
1 : 物品12 : 物品23 : 物品3...
如果我想移动
922 : 物品922
到第 100个位置.
那么这个排序,除了循环后面的内容吧位置全部+1外,有什么好方法吗?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
循环内容补加一应该是线性表顺序存储结构的特点,他的缺点恰恰就是插入和删除可以采用链表的方式。链表的实现原理是列表中各项在内存中随意存储,但是每一项中都存有下一项内存的指针。这样可以通过第一个元素的指针找到第二个元素,然后找到第三个。这样如果要增删的话只要改变相应几项的指针地址就可以了。比如要把6插到3的位置。那么只要把5的下一项指针改成7,6就被删除了,然后把2的下一项指针改成6,6的下一项指针改成3,整个就实现了移动操作,大大降低时间复杂度。当然上面是理论。----实践分割线-------对应js可以使用splice
循环内容补加一应该是线性表顺序存储结构的特点,他的缺点恰恰就是插入和删除
可以采用链表的方式。
链表的实现原理是列表中各项在内存中随意存储,但是每一项中都存有下一项内存的指针。这样可以通过第一个元素的指针找到第二个元素,然后找到第三个。这样如果要增删的话只要改变相应几项的指针地址就可以了。
比如要把6插到3的位置。那么只要把5的下一项指针改成7,6就被删除了,然后把2的下一项指针改成6,6的下一项指针改成3,整个就实现了移动操作,大大降低时间复杂度。
当然上面是理论。
----实践分割线-------
对应js可以使用splice