算法笔记(没写完)
算法
算法设计原则
- 正确性
- 可读性
- 健壮性
- 时效性
如何衡量一个算法的好坏?
- 计算算法执行的耗时
- 量化算法执行消耗资源的大小
- 时间复杂度
时间复杂度
- 定义:量化算法执行步骤的数量
- 表示方法:大O记法
大O记法
- 方法:将算法执行步骤表达式中最有意义的一项取出来,放置在大O后面的括号中即可。
- 常见的时间复杂度:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
数据结构
数据的组织方式被称为数据结构。或者,认为所有的数据结构都是用来装载数据的容器。
常见的数据结构
- 栈: 先进后出:放入(append),取出(pop)
- 实现
class Stack(): def __init__(self): self.items = [] #构建一个空栈 def push(self,item): #添加元素 self.items.append(item) def pop(self):#取出元素 return self.items.pop() def isEmpty(self): return self.items == [] def length(self): return len(self.items)
- 实现
- 队列:先进先出:放入(insert(0,元素),取出(pop)
- 实现
class Queue(): def __init__(self): self.items = [] def enqueue(self,item):#添加元素 self.items.insert(0,item) def dequeue(self):#取出元素 return self.items.pop() def isEmpty(self): return self.items == []
- 实现