社区
C语言
帖子详情
一个关于线性表的问题
wxtp
2003-10-12 08:36:13
在无序数组尾部添加一个数据所用时间为常数,但其查找一个与关键码匹配的元素的时间复杂度为O(n)
而有序数组中可使用二分法使时间复杂度降为O(logn),但由于整数移动,若要保持数据的有序,插入一个元素所需时间复杂度为O(n),
怎样组织数据可使插入和查找的时间复杂度都O(logn)?
不必写出详细程序,只要简述相关算法。
...全文
48
8
打赏
收藏
一个关于线性表的问题
在无序数组尾部添加一个数据所用时间为常数,但其查找一个与关键码匹配的元素的时间复杂度为O(n) 而有序数组中可使用二分法使时间复杂度降为O(logn),但由于整数移动,若要保持数据的有序,插入一个元素所需时间复杂度为O(n), 怎样组织数据可使插入和查找的时间复杂度都O(logn)? 不必写出详细程序,只要简述相关算法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wxtp
2003-10-13
打赏
举报
回复
To Andy84920:
能不能给出查找的算法描述?
还有假设链表序列是以下结构: head->1->2->3->5->8->9->12
如果查找时,设中间节点指向5,要查找8的话,第二次缩小范围时中间节点是不是还要再移动?
Andy84920
2003-10-13
打赏
举报
回复
TO:wxtp()
是啊,这样就转到中间结点与最后结点之间的查找,然后再移动中间结点,这样
能让效率更高吧,我想!
owenowen
2003-10-13
打赏
举报
回复
to wxtp():
你说的算法类似于一个二元搜索树
但你的算法还是O(n)级的,而且你可以定义
typedef struct element_T{
int data;
struct element_T *next;
struct element_T *last;
}
就是一个双向链表
定义一个二元搜索树可以使插入(删除),查找都达到O(log(n))级
wxtp
2003-10-13
打赏
举报
回复
有谁能把算法简单的写一下
coolduckplus
2003-10-12
打赏
举报
回复
Andy84920的想法是什么意思?
能不能具体点?
我是菜鸟,谢谢
ford_hjq
2003-10-12
打赏
举报
回复
小型的话,还是链表好
Andy84920
2003-10-12
打赏
举报
回复
我没学过数据结构,算法什么东西,也没看过这之类的书.
所以可能只是我随便想想说出来的.希望哪位高手来发表见解,
等着看,希望对我的想法给个评价,谢谢!
Andy84920
2003-10-12
打赏
举报
回复
我的想法:
用一个双向链表,在链表的定义时多用一个结点指针,使得它指向链表的中间结点.
为了二分查找用.这样就不必从头遍历来比较.
同时这样为插入元素提供了效率,不必移动元素.
怎么用c语言构建
一个
线性表
在 C 语言中构建
一个
线性表
,有几种常见的方法。 一种方法是使用数组,将
线性表
中的元素存储在数组中。这种方法的优点是简单易实现,但是缺点是
线性表
的大小固定,不能动态增长。 另一种方法是使用链表,在每个...
LINK指向
一个
字
线性表
,其中的首单元保存
线性表
的长度,编
一个
程序,将该
线性表
中的偶数项 删除。
LINK指向
一个
字
线性表
,其中的首单元保存
线性表
的长度,编
一个
程序,将该
线性表
中的偶数项删除。 DATA SEGMENT LINK DW 10,1,2,3,5,4,6,9,8,7,10 DATA ENDS STACK SEGMENT DW 10 DUP(?) TOP LABEL WORD STACK ENDS...
下列关于
线性表
说法中,正确的是( )。 Ⅰ.顺序存储方式只能用于存储线性结构 Ⅱ.取
线性表
的第i个元素的时间与i的大小有关 Ⅲ.静态链表需要分配较大的连续空间,插入和删除不需要移动元素 Ⅳ.在
一个
在
一个
长度为n的有序单链表中插入
一个
新结点并仍保持有序的时间复杂度为O(n) Ⅴ.若用单链表来表示队列,则应该选用带尾指针的循环链表 A. Ⅰ、Ⅱ B. Ⅰ、Ⅲ、Ⅳ、Ⅴ C. Ⅳ、Ⅴ D. Ⅲ、Ⅳ、Ⅴ 答案:D 本人计算机方向...
数据结构:
线性表
(List)【详解】
在较复杂的
线性表
中,
一个
数据元素可以由若干个数据项组成。在这种情况下,常把数据元素称为记录,含有大量记录的
线性表
又称为文件 二、
线性表
的顺序标识和实现 概念:用一组地址连续的存储单元依次存储
c语言构造
一个
空
线性表
l,数据结构
线性表
顺序结构的定义与实现C语言-Go语言中文社区...
大家好,今天给大家总结了一下数据结构里面的...在定义中用
一个
ElemType * elem表示基地址,int length 表示当前长度,int listsize表示数组的大小。具体实现的代码如下:/** 数据结构
线性表
顺序结构的实现*/#incl...
C语言
69,381
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章