数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。
一般来讲,数据结构是计算机组织、存储数据的方式。
数据结构可以分为逻辑结构和物理结构两大类。
逻辑结构分类:
逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类。
物理结构分类:
逻辑结构在计算机中真正的表示方式(又称为映像)称为物理结构,也叫做存储结构。常见的物理结构有顺序存储结构、链式存储结构。
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
研究算法的目的就是如何花更少的时间,如何占用更少的内存去完成相同的需求。有关算法时间耗费分析,称之为算法的时间复杂度分析,有关算法的空间耗费分析,称之为算法的空间复杂度分析。
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随着n的变化情况并确定T(n)的量级。算法的时间复杂度,就是算法的时间度量,记作:T(n) = O(f(n))。它表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,记作算法的渐进时间复杂度,简称时间复杂度,其中f(n)是问题规模n的某个函数。
最坏情况是一种保证,在应用中,这是一种最基本的保障,即使在最坏情况下,也能够正常提供服务,所以除非特别指定,运行时间都指的是最坏情况下的运行时间。
例如:查找数组元素,期望的元素最后一个才查询到,那么时间复杂度为O(n)。
空间复杂度也是使用大O记法,与时间复杂度类似。
原文:https://www.cnblogs.com/hanyezzz/p/14010919.html