目录
能力目标
通过本级考核的学生,能够使用枚举,递归,递推编写算法,完成指定功能
考试标准
1,掌握算法以及算法性能,算法效率的概念
2,掌握基本算法中枚举的概念
3,掌握基本算法中递归的概念
4,掌握自调用函数的应用,实现基本算法中递推的方法
5,掌握基本算法中由递归变递推的方法
知识点描述
1,算法性能和算法效率
算法性能:评估算法的好坏,主要从两个方面的判断:时间复杂度和空间复杂度,了解这两种评估的概念
算法效率:指算法执行的时间,了解如何度量算法效率。
2,枚举法
逐一列举问题所涉及的所有情形,并根据问题提出的条件检验哪些是问题的解,哪些应予排除。 采用 枚举算法 解题的基本思路:(1)确定枚举对象、枚举范围和判定条件; (2)枚举可能的解,验证是否是问题的解。
3,递归
递归的基本思想是某个函数直接或者间接地调用自身,这样原问题的求解就转换为了许多性质相同但是规模更小的子问题。求解时只需要关注如何把原问题划分成符合条件的子问题,而不需要过分关注这个子问题是如何被解决的。我们要掌握递归与递推的区别,能够相互转换。
例题
求1+2+3+..N
用递归的方法求出1+2+3+..N的值。
输入:输入n
输出:输出和
输入样例
5
输出样例
15
输入输出解析:1+2+3+4+5=15
#include <bits/stdc++.h>
using namespace std;
int f(int n){
if(n==0) return 0;//判断是否到达递归边界
return f(n-1)+n;//未到达继续递归
}
int main(){
int n;
cin>>n;
cout<<f(n);//调用函数计算从1—n的累加值
return 0;
}
我发的可能不太详细,有其他想法的欢迎评论区留言!!