AKSZ-算法入门
2024-03-10 17:29:04
发布于:广东
算法
算法是解决特定问题的一个或一种方法
算法有许多特点:
1、有穷性
2、确切性
3、输入项
4、输出项
5、可行性
例如:
void f(){
int n;
n++;
}
不是算法
时间复杂度
T(n)
一个算法的语句执行的次数被称为时间频度,表示为T(n),就是需要执行的次数,n表示题目规模
O(n)
O()就是时间复杂度,其中括号里填的数是T()里面的东西去掉系数和常数
例如桶排序的时间复杂度是O(n+k),因为桶排序的上面的循环最多执行k次,而下面最多跑n次所以里面是n+k。
常见时间复杂度
O(1),O(logn),O(n),O(nlogn),O(n2),O(n3),O(2^n),O(n!)
注:
1s大概可以运行10^8左右
时间复杂度 | O(n) | O(nlogn) | O(n^2) | O(n^3) | O(2^n) | O(n!) |
---|---|---|---|---|---|---|
n的范围 | n<10^8 | n<5*10^5 | n<10^4 | n<500 | n<25 | n<15 |
对数
a * a * a ... a=a的x次方=n
x=log a n
空间复杂度
大小
模拟算法
##1、审题立意
不遗漏的把题目所有条件提取出来并分析题目样例
2、分析关系
分析给出的各个条件之间的关系,最好用流程图简单列出
3、编写程序
用相应的语言、逐步求精的方法写出具体的算法
4、调试运行
调试代码,测试样例,观察中间过程
5、构造数据
构造更复杂、更全面的数据,来测试程序的准确性
对拍
n^3 一号->结果
n 二号->结果
data->文件
结果一=结果二=准确
while(1){
system("数据.exe>test.in");
system("伐木工.exe<test.in>my.out");
system("暴力.exe<test.in>std.out");
if(system("fc my.out std.out")) system("pause");
}
全部评论 1
markdown 语法 # 是需要用空格隔开 , 用 $$ 可以变成算术格式。
2024-03-10 来自 广东
0
有帮助,赞一个