了解数据结构和算法
1.什么是数据结构?
数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
初步认识数据结构,我们可以先简单地理解为:
要实现一个项目,需要在内存中将数据存储起来 。
例如:写一个通讯录(把每个人的信息存储起来,或需要使用,或不需要使用)。
我们就可以用数组、链表、树等等多种方式来存储数据。
将初步认识数据结构需要学习的内容具体化,最终要为实现类似的功能提供一个基础。
2.什么是算法?
算法就是定义良好的计算过程,取一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
算法会比较好理解,比如:
排序、查找、去重等等,
C语言中学习的冒泡排序、二分查找,都可以说是一种算法。
算法的复杂度
算法在编写成可执行程序后,运行需要耗费时间资源和空间(内存)资源。因此 衡量一个算法的好坏、一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。(摩尔定律)
摩尔定律
摩尔定律是英特尔创始人之一 戈登·摩尔的经验之谈,其核心内容为:集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半。
时间复杂度
时间复杂度的定义:在计算机科学中, 算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所消耗的时间,从理论上说,是不能计算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是每个算法都上机测试,会十分麻烦,所以出现了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例, 算法中的基本操作的执行次数,为算法的时间复杂度。即:找到某条基本语句与问题规模N之间的数学表达式,就是算出了该算法的时间复杂度。