数据结构
对于数据的组织方式被称为数据结构(int,float,char) 列表和字典也是一种数据结构
算法
- 是计算机处理信息的本质就是算法。
- 算法是独立存在的一种解决问题的方法和思想
算法的五大特征
-
输入
-
输出
-
有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每个步骤都可以再可接受的时间内完成。
-
确定性:算法中的每一步都有确定的含义,不会出现二义性
-
可行性:算法的每一步都是可行的, 即每一步都能够执行有限的次数完成
链表
eg: 如果 a+b+c=1000, a^2+b^2=c^2,如何求得 abc 可能的组合? 解 1: 枚举法
for i in range(1,1001):
for j in range(1,1001):
k = 1000- i-j
if i*i + j*j == k*k:
print(i,j,k)
算法复杂度和大 O 表示法
影响运算效率的因素
- 机器的执行效率
- 算法的复杂度
- 但在一般情况下,每台机器执行的总时间不同,但执行基本运算量是大体相同的
时间复杂度
-
定义:
在计算机科学中,时间复杂性,又称时间复杂度,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。
-
最优时间复杂度、最坏时间复杂度、平均时间复杂度
- 考虑最坏复杂度:保证性能
- 考虑平均时间复杂度
时间复杂度的比较
O(1) < O(logn)< O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
python 中算法优劣问题
timeit 模块
from timeit import Timer
速度:4>3>1 >2