回 帖 发 新 帖 刷新版面

主题:[讨论]问几个数据结构的时间复杂度的问题,帮忙

1
  在严格具有n个结点的有序顺序表中插入一个新结点并仍然有序,的时间复杂度是
  O(n^2)
为什么?
 2
  在顺序表中,有7个元素,设第一个元素的查找概率是1/4,第二个元素的查找概率是1/3,其余元素的查找概率相同,则整个顺序表的平均查找次数是多少次
  A 44/12   B 451/60   C 38/12   D 56/24
3
  在单链表中删除结点的时间复杂度是(B)
A O(1)   BO(n)  C O(n^2) D O(log n)  为什么是B不是A,
4 在P结点前插入S结点
 proir 表示指向前一个指针
 next  表示指向后一个指针
p->proir->next=p->next->proir=s
是不是可以p->proir->next=p->next->proir=s=p  ?

回复列表 (共5个回复)

沙发

1,又要查找,又要移动元素
3,删除一个结点i,必须找到第i-1个结点,最坏情况:i是最后一个,故时间复杂度为O(n)
4,不可以,s->next=p->next;
p->next->prior=s;
s->prior=p;
p->next=s;

板凳

2. 应该是C吧
3.因为你还要移动啊

3 楼

[quote]2. 应该是C吧
3.因为你还要移动啊[/quote]
链表删除是不用移动的,关键是寻找

4 楼

[quote]2. 应该是C吧
3.因为你还要移动啊[/quote]


第二题如何解释呢?

是1*1/4+2*2/3+(3+4+5+6+7)*1/12  这样算么?
这样结果是36/12=3丫


第三题应该是对于未确定结点而言的复杂度是O(N)
对已知某个结点的时间复杂度应该是O(1)吧

5 楼

2
  在顺序表中,有7个元素,设第一个元素的查找概率是1/4,第二个元素的查找概率是1/3,其余元素的查找概率相同,则整个顺序表的平均查找次数是多少次
  A 44/12   B 451/60   C 38/12   D 56/24
后面的元素查找的概率是(1-1/4-1/3)/5=1/12
平均查找长度:1*1/4+2*1/3+(3+4+5+6+7)*1/12

我觉得1题是O(n)

我来回复

您尚未登录,请登录后再回复。点此登录或注册