csp初赛理论知识点(Day05)

队列相关知识:
queue队列常见操作法:
queueq; 创建一个整形队列
q.push(x); 在队尾添加元素x
q.front(); 获取队首元素
q.back(); 获取队尾元素
q.size(); 返回队列中的元素个数
q.pop(); 删除队尾元素
q.empty(); 判断队列是否为空,为空返回true,不为空返回false

2、广度优先搜索(广搜BFS)
由近向远逐层搜索
特点:找最短路径
见示例代码
广搜具体步骤:
1、起始点入队(特判:要考虑起点是否被阻挡)
2、每次去除队首判定:
如果队首是目标点,则结束搜索
如果不是,则将队首能够衍射到的下一个点入队(队列中的点不能重复)
3、重复步骤2,如果队列为空了则找不到答案(路被堵死了,或者根本没有师傅)
备注:每一个结点都有步数,起点步数为0,下一个点步数为上个点步数+1

时间复杂度:
时间复杂度不是单纯的耗时,而是计算时间与数据n的关系
常数阶-O(1)
固定时间:跟数据输入量无关

线性阶-O(n)
可以理解一重的n次循环,比如打擂台/求n个数字的和
注意事项,这里不关注系数

平方阶-O(n^2)
可以理解为双重n次的循环

对数阶-O(logn)
以二分为例,n个数据中找答案,每次会排除一半的数据量(也就是n/2)
当某一次排除后数量刚好为1,就找到答案,查找次数就是时间,logN表示

线性对数阶-O(nlogn)
就是进行n次对数阶的操作

快排:
流程:输入->编写快排函数完成排序->输出
1、确定基准值
2、移动元素
3、固定基准值
4、对基准值左右序列继续快排

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值