一.数据结构与算法概念
数据结构是计算机存储、组织数据的方式;是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
二.数据结构与算法研究的内容
通常数据结构分为逻辑结构和存储结构两大结构。1,逻辑结构又可分为:集合结构;线性结构;树形结构;图形结构这四种形式;2.存储结构可分为:表;堆栈;队列;数组;树;二叉树;图这七种形式的结构。后面我们会逐渐深入对这11种形式的结构进行研究。
算法通常是以时间复杂度和空间复杂度为研究内容,时间复杂度O(n)一般是以关键性代码执行次数来衡量,次数越少,时间复杂度也越低,从而我们说这个算法就越好;空间复杂度一般用占用内存大小来衡量。时间复杂度和空间复杂度在实际应用中我们往往是一个相对矛盾的存在,是一个很难兼顾的过程,亦或时间换空间,亦或空间换时间来是算法达到当前场景最佳。那么我们如何来把两者控制到最合适呢?这里要注意了,我们衡量算法(程序)的好坏:算法好坏=时间复杂度+空间复杂度+应用场景(重要) ;算法是为应用而生的,这里我们把应用场景重点强调是因为不同的场景下我们需要强调的点有很大不同,当我们以实际应用为出发点去研究一个算法的时候,它才能解决我们实际的问题。