请假各位牛人一个数据结构和算法问题。小弟不懂行情,先给30分,不够再加,多谢多谢。

ljhwht 2007-08-28 11:05:48
问题:
一个集合,元素是[0,1000]的整数,请设计一个数据结构和相关算法,要求对这个集合进行查找、添加、删除、修改等操作。

要求效率最高。

请各位帮忙解决一下,非常感谢。
...全文
317 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
假如题目改下 --元素是[0,2^64-1]的整数
其他条件不变
复杂度是不是Log(n)
KingOfSco 2007-10-19
  • 打赏
  • 举报
回复
红黑树?
bicidedida 2007-09-06
  • 打赏
  • 举报
回复
直接用数组?1001的大小,有就有没就没?
这个好像挺快.


当然,厚道一点可以用个二叉树,不知道楼主是个什么需求.
daly888 2007-09-03
  • 打赏
  • 举报
回复
针对这个问题,简单的hash table就可以了
算法时间复杂度是 O(1), 很快的
oo 2007-08-30
  • 打赏
  • 举报
回复
同意3楼的方法,都是O(1)
iceheart 2007-08-30
  • 打赏
  • 举报
回复
1001个单元的整数数组。每个单元表示这个下标出现的次数,插入就对这个单元+1,删除就-1,查找就监测这个value是否为0,修改就是将原值为下标的单元-1,目标值为下标的单元+1
gnefuil 2007-08-29
  • 打赏
  • 举报
回复
平衡树
houdy 2007-08-29
  • 打赏
  • 举报
回复
对于题目中涉及到的集合,我们知道,集合的元素是整数,而且范围是[0,1000]. 同时需要对集合进行查找,添加,删除,修改等操作.
这样我们就可以使用bit vector这样的数据结构,利用vector的索引值来表示集合的元素[0,1000],用vector的元素的值(0或者1)表示存在或者不存在.
这样,对于查找,添加,删除都是O(1)的时间复杂度.
BTW,如何理解修改操作?
gracefullee 2007-08-29
  • 打赏
  • 举报
回复
就用链表吧。
hjlovelf 2007-08-29
  • 打赏
  • 举报
回复
建议你看下数据结构的几中算法,由于你这不设计较复杂的要求,因此采用基本的算法就可以,采用链表,算法你可以根据情况选择
小一郎 2007-08-29
  • 打赏
  • 举报
回复
用链表就可以实现啊
yaunx 2007-08-29
  • 打赏
  • 举报
回复
嘛叫效率最高?

33,008

社区成员

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

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