码迷,mamicode.com
首页 > 编程语言 > 详细

重学数据结构与算法

时间:2020-06-04 13:47:39      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:转换   数值   复杂   资源   就是   叠加   哪些   空间   含义   

复杂度是什么

  复杂度是衡量代码运行效率的重要的度量因素。

  计算机通过一个个程序去执行计算任务,也就是对输入数据进行加工处理,并最终得到结果的过程。每个程序都是由代码构成的。可见,编写代码的核心就是要完成计算。但对同一个计算任务,不同计算方法得到结果的过程复杂度是不一样的,这对你实际的任务处理效率就有了非常大的影响。

复杂度是一个关于输入数据量n的函数、计算方法遵循以下几个原则:

  首先,复杂度与具体的常熟无关。如O(n)和O(2n)表示同样的复杂度。

  其次,多项式级的复杂度相加的时候,选择高者作为结果。

其中,O(1)也是表示一个特殊复杂度,含义为某个任务通过有限可数的资源即可完成。此处有限可数的具体意义是,与输入数据量n无关。

时间复杂度与代码结构的关系

  时间复杂度与代码有着非常紧密的关系;而空间复杂度与数据结构的设计有关。

 

降低复杂度的方法三步骤:

  1.暴力解法。在没有任何时间、空间约束下,完成代码任务的开发。

  2.无效操作处理。将代码中的无效计算、无效存储剔除,降低时间或空间复杂度。

  3.时空转换。设计合理数据结构,完成时间复杂度向空间复杂度的转移。

首先,这段代码对数据进行了哪些操作?
其次,这些操作中,哪个操作最影响效率,对时间复杂度的损耗最大?
最后,哪种数据结构最能帮助你提高数据操作的使用效率?

数据处理的基本操作只有 3 个,分别是增、删、查。其中,增和删又可以细分为在数据结构中间的增和删,以及在数据结构最后的增和删。区别就在于原数据的位置是否发生改变。查找又可以细分为按照位置条件的查找和按照数据数值特征的查找。几乎所有的数据处理,都是这些基本操作的组合和叠加。

 

重学数据结构与算法

标签:转换   数值   复杂   资源   就是   叠加   哪些   空间   含义   

原文地址:https://www.cnblogs.com/xiangxiaolin/p/13042850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!