数据结构与算法复杂度详解
1. 算法复杂度
1.1 数据结构
数据结构 (Data Structure) 是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以要学各式各样的数据结构,如:线性表、树、图、哈希等。
1.2 算法
算法 (Algorithm): 就是定义良好的计算过程,它取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
1.3 二者的重要性
研究算法和数据结构的最终目的就是为了'快'和'省',快是指速度快,省是指耗费的内存等硬件资源少。而讨论数据结构和算法,必然涉及复杂度分析。包括时间复杂度分析和空间复杂度分析。
随着信息技术的快速发展,如今空间已不再稀缺,64G, 128G, 256G 已然平常,甚至还有 1TB。但是,这是否意味着我们可以不在乎空间复杂度呢?肯定不是。
小引:摩尔定律
集成电路上可以容纳的晶体管数目在大约每经过 18 个月到 24 个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半。
2. 算法效率
如何衡量一个算法的好坏呢?
案例引入:轮转数组

代码实现:

代码实现造成结果:























