1.什么是数据结构?
答:数据结构就是组织数据的形式。
2.什么是算法?
答:算法是操作数据的方式。
3.数据结构与算法的关系?
答:互相依赖的关系。没有算法来进行操作的数据结构没有任何作用。而算法也要作用在特定的数据结构之上。
4.算法复杂度。
答:评估算法的方式。我们的期望是写出运行快,占用空间小的程序。所以分为渐进时间复杂度和渐进空间复杂度。
渐进时间复杂度简称时间复杂度,表示的是程序运行时间T(n)随数据量n的变化趋势。表示为Tn = O(f(n))。
渐进空间复杂度简称空间复杂度,表示的是程序占用空间S(n)随数据量n的变化趋势。表示为Sn = O(f(n))。
复杂度从小到大有:O(1),O(logn),O(n),O(nlogn),O(n^2),O(n^3)。。。O(2^n),O(n!).
5.复杂度分析。
答:几个法则:
①.只关心执行次数最多的一段代码。
②.加法法则:总的复杂度就是最大量级那段代码的复杂度。
③.乘法法则: 嵌套代码的复杂度等于内外复杂度的乘积。
有多个数据时,如有m,n:
则复杂度可能表示为O(m+n).或者O(m*n)。