使用二分法进行排序,如何提高数据增加/删除的效率

arfi 2006-03-17 07:56:54
现对一堆数据使用二分法进行排序,当数据量很大时,数据增加/删除的效率明显低于查找效率,主要是因为有效数据是按顺序进行存储的,当对数据进行增加/删除时,首先会定位到增加/删除的位置,然后从该位置起,后面所有的数据都要向后移动/向前一项(程序实现时使用的memmove函数)。
发现主要的时间都耗在了memmove这个系统函数上,如果要想显著提高效率,估计得改善数据的组织结构,不知哪位大虾有好的想法,不吝赐教!
...全文
98 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
arfi 2006-03-20
  • 打赏
  • 举报
回复
英文的!我一看英文就头大,慢慢研究先。
mmmcd 2006-03-17
  • 打赏
  • 举报
回复
有一种数据结构叫Skip List
可在链表上实现二分查找
而链表上的插入删除又是很高效的。

论文直接用FlashGet下载:
http://citeseer.ist.psu.edu/cache/papers/cs/23209/ftp:zSzzSzftp.cs.umd.eduzSzpubzSzskipListszSzskiplists.pdf/pugh90skip.pdf

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧