当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

什么是数据结构?

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

如何摆放图书馆的书?

摆放图书馆的书与书的规模和对书要进行的操作有关。

也就是说,如何确定一个问题的数据结构,需要考虑到问题的规模和程序中要进行的操作。

打印一个数列从1到N,采用递归和循环的方式。

递归方式容易理解,解决问题效率高,但计算执行复杂,占用空间大。循环的方式不便于理解,但计算机执行效率高,占用内存小。

说明解决问题的效率和空间占用效率有关

一个多项式求值的问题。

对于一个多项式求值的问题,可以采用正常的从前往后逐项累加,也可以使用“巧妙的结合律”,从里向外求和,从而使得乘法的次数被降低,算法执行效率提升。

说明了解决问题的效率和算法的巧妙程度有关

综上,要谈论一个问题采用什么数据结构必须要明确问题的规模和问题的需求,这样才能使用合适的数据结构。我们可以使用“空间”来换取“时间”,或者用“时间”换取“空间”。算法的巧妙程度决定了一个算法的效率。

数据组织的逻辑结构:一对一(线性),一对多(树),多对多(图)

数据结构的抽象描述

数据对象集

在数据集上对应的操作

什么是算法

一个有限的指令集

接受一些输入。可以没有输入。

产生输出。

有穷性。一定步骤后终止。

确定性。每一步都应该是明确的,没有歧义。

可行性。

每一天指令应该:正确性、可读性、便于阅读理解和维护。健壮性、 输入不合法时,依然不会崩溃。

什么是好的算法

衡量一个算法的好坏,普遍会使用时间复杂度和空间复杂度。它们两个共同决定了算法所需要消耗的资源。这些资源可能包括CPU资源,RAM资源,带宽资源。

确定一个算法的好坏可以使用事后统计或者事前分析。事后统计就是利用设计好的数据集,在测试程序上运行,然后统计各种资源的使用情况,从而分析算法的效率。事前分析就是利用统计的方法,对算法效率进行估算。

1、时间复杂度

算法的时间复杂度,描述的是算法的运行时间。实际的运行时间其实是很难计算出来,对于不同的环境,每条语句的执行时间可能都不相同。这里的描述相当于算法中语句的执行次数。

对于给定的问题规模n,那么语句的执行次数和问题规模n之间的关系可以用T(n)来表示。通过T的大致趋势也能反映出算法的时间耗费,不需要给出精确地T值,所以在这个基础上引出来渐进时间复杂度。

当问题规模n趋向于无穷大时,算法的时间复杂度T(n)的渐进上界,叫做渐进时间复杂度。在实际使用中,渐进时间复杂度和时间复杂度不予区分,记为:T(n) = O(f(n)).在实际中,O表示在最坏情况下的渐进上界。关于渐进符号的知识,可以参考这里。

然而,对于同一个算法,不同的数据,可能时间复杂度是不同的。所以,又分为三种情况的时间复杂度:

最坏情况:任意输入最长的运行时间。

平均情况:任意输入期待运行时间。

最佳情况:对于特定输入,最快执行时间。

在实际中,一般使用最坏情况下的时间复杂度。

2、空间复杂度

空间复杂度用S表示。它描述的是算法执行期间所要占用的空间。程序占用的空间一部分是和算法无关的,例如:指令,常数,输入数据等,所以这一部分不是分析的空间。在算法执行过程中所需要的辅助空间才是我们所关心的。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭