算法的执行效率与数据的存储结构有关吗

2020-11-24 19:46:43 字数 4281 阅读 9889

1楼:匿名用户

你好,算法的执行效率与数据的存储结构是有很大关系的,例如在数组中的插入删除算法的o(n)=n,而在链表中插入删除算法的o(n)为常数

纯手打,请给分,谢谢!

算法的执行效率和数据内存有关系吗?

2楼:枫默·瞴

严格的说算法的执行效率跟算法本身的效率和计算机的效率有关。

计算机的效率包括cpu和内存的速度。这是你执行算法时候实实在在花费的时间长短。

撇开计算机的效率,算法本身的效率跟算法本身和数据有关。

算法的执行效率于数据的存储结构有关么?为什么?

3楼:匿名用户

有关,你去了解下高速缓存,cache

4楼:傲世修罗王

当然有关,好的数据结构能加速算法的速度。所以说算法和数据结构是不分家的。但是这和高速缓存没有关系,那是硬件上的东西。

程序执行的效率与与什么有关

5楼:匿名用户

程序执行的效率跟算法有关,而一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

1、空间复杂度是指算法在计算机内执行时所需存储空间的度量

2、一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用t(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,t(n)/f(n)的极限值为不等于零的常数,则称f(n)是t(n)的同数量级函数。记作t(n)=o(f(n)),称o(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为o(1),另外,在时间频度不相同时,时间复杂度有可能相同,如t(n)=n2+3n+4与t(n)=4n2+2n+1它们的频度不同,但时间复杂度相同,都为o(n2)。

按数量级递增排列,常见的时间复杂度有:

常数阶o(1),对数阶o(log2n),线性阶o(n),线性对数阶o(nlog2n),平方阶o(n^2),立方阶o(n^3),...,

k次方阶o(n^k),指数阶o(2^n)。随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。

6楼:匿名用户

选第一个。

其实三个都有关系。但是后两个说“只”就不对。

主要和cpu速度,程序的循环逻辑和选择逻辑的关系,程序的数据结构,数据量的使用。

7楼:

程序执行的效率 除与数据的存储结构密切相关外,还与数据的逻辑结构有关,以及选取什么样的算法有关。

个人认为与 数据结构(逻辑结构、存储结构)与算法有密切关系。

算法的执行效率与什么有关

8楼:匿名用户

b对了吧,不过似乎不完整。这应该是数据结构的题目,数据的存储结构将直接影响到算法的执行效率的。比如用数组跟用链表的效果就是不一样的,它们的查找、插入、删除、排序都是不一样的。

vb中算法执行效率与什么有关

9楼:匿名用户

与程序算法的执行次数和算法的复杂程序直接相关。

计算机二级基础题

10楼:挂牌老大

基础120题,都搞懂了就差不多。

(1) 下面叙述正确的是______。(c)

a. 算法的执行效率与数据的存储结构无关

什么是数据结构和算法?学算法还需要去了解数据结构吗?

11楼:匿名用户

你这理解不完全正确。

因为数据结构不只是内存中数据的排列,它是对数据的一种组织方式,就像图书馆要排书一样,是为了便于操作,同时它本身也集成了对通用操作:比如查找、比较等的支持。数组不是一种数据结构,而是一种数据类型。

一个完整的数据结构包括逻辑结构和存储结构。通常选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。

因此在语言实现上,数据结构通常也会包含与之相对应的算法集合,这些算法是指基本算法:查找、索引、比较等。

数据结构的逻辑结构和硬件是没有关系的,而其存储结构受到计算机硬件系统工作方式的影响,通常这点影响在于数据时顺序存储还是离散存储。算法的基础是数据结构。只有指定明确的数据结构,算法才能设计完成,脱离数据结构,算法是无法,也不可能成立的。

因为不需要数据的算法就不是一个有效的计算机算法,算法中任何对数据的组织形式都可以被称之为数据结构。

2.数据结构在编程中的地位是极其重要的,是一个程序实现的基础中的基础,在此基础上才能构建算法。通常而言,你不了解什么高深的算法,一样能完成工作,但是如果你不了解基本的数据结构,那么可以说,你根本就不能完成一个任何有实质性内容的程序。

donald ervin knuth教授在其《计算机程序设计艺术》的第一卷《基本算法》中花费的绝大部分的篇幅去论述数据结构。由此可见数据结构对算法的重要性。

12楼:匿名用户

数据结构可以优化数据的存诸,使得数据存诸能够更省空间,查找更高效。

有时候数据结构本身就是一种算法,比如线段树,splay树,堆。

而有一些算法是要建立在数据结构的基础之上才能够更高效的。

对于不同的算法需要采用合适的数据结构。比如最短路径算法,对于希疏图,我们要用连接表来存连。这样才不能导至大量的空连。而且连的查找也更高效。

而对于密图,我们采用连接矩阵来存诸。

13楼:匿名用户

你可以这样理解,数据结构你把它理解成excel里面的制作一张**的表模,比如你做一张工资表,那么表模肯定你要考虑每一个数据的意义和它们应该放置于哪个位置。而算法就是你在**内部数据间的关联运算,可以是逻辑的也可以是数学的。

因此你制作一张工资表,你肯定要先定结构,然后再定算法。当然你说只学算法不学结构照样能做出结构来,但你考虑更高一个层次,如果你这张工资表只是一个公司几百份**中的一份,你如果不把它的结构搞得很清楚的表达,你其他**要调用这张**的数据就无从做到,而你如果用结构来表示,就很清晰了,这就是结构和算法的不同。

结构是较为宏观的思考方式,算法是微观的实现,它们之间密不可分。当然在现在软件开发工程里面,系统工程师可以分为做结构和做算法的,但一般做结构的都是更核心的成员,他们懂算法,但不用做算法,他们只要把数据结构模型构造好,工程分拆清晰,让其他的程序员按照他们规划的结构去做细致的工作就可以了。

14楼:匿名用户

数据结构与算法密不可分。

数据结构注重了数据的组织形式。 数据的一定的组织方式已决定了只适用于某此算法。

算法寻求在指定数据结构上的最优解, 也就是最有效率的方法。 为此也有此设计特定的数据结构的, 比如红黑树就是被发明出来的。

好的算法: 存储空间效率(数据结构)与时间效率(算法性能)达到一定的平衡, 而非只突出时间效率。 所以一定要同时考虑这两个方面才能设计出一个好的算法。

应用中还要考虑特定的环境, 比如嵌入式, 没有大的内存, 这时有些占用大量的内存的一些算法就不适用了。

另一种角度: 借用c++中stl的概念,

数据结构: 在c++中定义为容器, 比如:vector(数组) list(链表)。。。

而这些容器对于装入其中的东西并无限制, 比如使用者可定义装int, 也可以装char, 还可以装string数据。

算法: 在c++中定义也叫算法, 比如find, 查找指定的一个元素, 你可在vector容器中查找 , 也可用在list容器查找。 但是在不同的容器中查找效率是不同的, 这是容器本身决定的。

15楼:匿名用户

呵呵,这两个都是要学的。。。不学你怎么做好编程

16楼:码宝宝呀

数据结构就是“多维度”的模版 + 内部与外部的联系。 当您定义好数据结构的时候,一个初始的数据模版就被定义出来,然后这个利用这个模版,您可以生成你想要的数据的模样。 这些数据内部的值可以内在有各种各样的联系,数据与数据直接也有各种个样的联系。

利用数据内部和外部的联系的配合,可以帮助人们抽象各种个样的问题。 常见的数据结构有链表,栈, 队列,数组等等。

算法以我的理解就是解决一个问题时需要的一个流程。通常一个算法能解决一类相似的问题,只要你的程序按照既定算法的步骤进行,就可以解决此类问题。对学习算法,我的建议就是把算法具体成图像,把几个关键的步骤用图像记忆下来。

数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要建立在特定的数据结构之上,因此无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。所以学算法就会涉及到数据结构,同样学数据结构也必须学到算法。

想知道更多的数据结构与算法知识吗?可以去了解一下小码哥李明杰。

数据结构学的到底是什么?和算法有什么关系

1楼 河蟹蛇荟 首先 数据结构是一门计算机语言学的基础学科,它不属于任何一门语言,其体现的是几乎所有标准语言的算法的思想。 上面的概念有一些模糊,我们现在来具体说一说,相信你门的数据结构使用的是一门具体的语言比如c c 语言来说明,那是为了辅助的学习数据结构,而数据结构本身不属于任何语言 相信你把书...

喉的正常形态的维持与哪些解剖结构有关

1楼 匿名用户 与喉的软骨 喉肌 喉的韧带 及一些膜性结构有关,其中最主要的是喉的软骨,它包括甲状软骨 环状软骨 会厌软骨和一对杓状软骨。 喉的正常形态结构如何,主要靠哪些解剖结构 2楼 匿名用户 在 相当于第3 6颈椎部 环状软骨和会厌软骨 喉软骨 喉的支架由三个单一软骨 甲状软骨,为呼吸与发音的...

感受态细胞转化效率的高低与哪些因素有关

1楼 匿名用户 1 细菌的生长状态 实验中应密切注视细菌的生长状态和密度,尽量使用对数生长期的细胞 一般通过检测od600来控制。dh5 菌株 od600为 0 5 时细胞密度是 5 107 ml 2 所有操作均应在无菌条件和冰上进行 3 经 cacl2处理的细胞,在低温条件下,一定的时间内转化率随...