数据结构和算法的意义?
数据结构是数据的组织方式,算法是对数据的处理方式,合理的数据结构和算法,能够保证程序高效的运行。
算法的五大特性:
输入:算法具有0个或多个输入
输出:算法具有1个或多个输出
确定性:算法每一步有确定的含义,不能有二义性
可行性:算法有限次完成
算法的评价方式?
算法的复杂度一般采用大O记法表示,评估算法的好坏往往分析算法的最坏情况下的时间复杂度、空间复杂度。
时间复杂度计算:时间复杂度只表示程序最多运行次数,只标识量级,舍弃系数和次要项。
时间复杂度量级:(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)
算法的运行时间计算?
python:采用time模块计算时间
import time
dt = []
start = time.time()
dt.append(1)
print("cost time is {0}".format(time.time() - start))
python:采用timeit模块计算时间
import timeit
dt = []
fun = timeit.Timer('dt.append(1)',"from __main__ import dt")
print(fun.timeit(number=1000))#打印运行1000次dt.append(1)所需要时间
C++:采用time.h计算时间
#include<time.h>
clock_t start = clock();
for (int i = 0; i < 5000; i++){
for (int j = 0; j < 5000; j++){
;
}
}
clock_t end = clock();
cout << double(end - start) <<"ms" << endl;
常用的数据结构有:顺序表、链表、栈、队列、树、
常用算法:排序算法、查找算法