寒假训练营 第一节 时空复杂度分析

一.时空复杂度的分析

1.时间复杂度

时间复杂度:程序运行会消耗多少时间。
在此,为了方便讨论,我们假定每一个语句消耗的时间一样,视为一个时间单元。

#include 
using namespace std;
int main()
{
	int n = 100;//执行1次
	for(int i = 0; i < n; i ++)//i=0执行1次 i < n要判断n+1次 i++要执行n次
	{
		cout << "gzmuyyds" << endl;//输出n次
	}
}
/*
所以本程序一共会执行3n + 3次
在此得到一个问题规模n和所花费的时间的函数T。
T(n) = 3n + 3
问题规模n	1	10000
3n + 3		6	30003
3n      	3   30000
n			1	10000
用O(n)来表示该程序的是时间复杂度。
*/
  • 由上,我们得出怎么计算一个程序的时间复杂度呢?
    1.忽略常数项。
    2.忽略系数。
    3.只保留最高项。
  • 常见的时间复杂度:从小到大依次是:O(1) O ( n 2 ) O(n^{2}) O(n2)< O ( n 3 ) O(n^{3}) O(n3)< O ( 2 n ) O({2}^{n}) O(2n) 寒假训练营 第一节 时空复杂度分析_第1张图片

应用:

1.由题目数据范围判断编写的代码是否会TLE。
2.通过题目数据范围反推算法:yxc博客

例题:

P2249
P8780

2.空间复杂度

绝大多数情况下不会卡,没啥用。

二.寒假相关安排

1.寒假算法课计划(集训队内大一、大二同学必须参加,大三、大四同学不强制要求参加)

  • 授课内容:基础数据结构、基础算法、基础图论与搜索、基础动态规划、基础数论。
  • 授课时间:从12.19开始,每周三次课(具体时间会提前通知),当然过年期间会放假。
  • 授课形式:直播(每次课之后会有录播)+课后作业+课后总结(博客),每次的上课会严格记录考勤。要请假的务必请假并提供相关依据。ps:如果你认为你的水平已经足够高或者有自信,可以自学,可以申请不来上课,但是课后作业和课后总结,必须完成。
    ps:
    下学期的参赛资格分配原则:
    按综合测评和假期表现加权排序,由高到低。
    大一、大二同学:综合测评 * 0.7 + 假期表现 * 0.3
    大三、大四同学:综合测评 * 0.7 + 假期平均表现 * 0.3

    假期综合表现评定标准:

    1.直播课考勤 20%
    2.课后作业及完成情况 70%
    3.蓝桥杯训练营、XCPC训练营作为加分项占 10%

    2.牛客寒假训练营(自费参加,50RMB六场比赛)

    训练营介绍页
    • 题目质量还是挺高的。大家感兴趣的可以参加。

3.XCPC训练营

旨在想参加XCPC的同学,强度很高,难度很大。
梯子:http://sakura-cat.net
《算法竞赛从入门到进阶》相关博客推荐
1.部分知识讲解+部分题解
2.本书所有题目题解

你可能感兴趣的:(算法,蓝桥杯,c++)