标签:
1.1 数据结构的概念
数据结构是一门研究非数值计算程序设计中计算机的操作对象以及它们之间的关系和运算等的学科.
1.2 相关的概念和术语
1.3 抽象数据类型
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作.抽象数据类型的定义取决于它的一组逻辑特性,而与其在件算计内部如何表示和实现无关.
1.4 算法和算法分析
算法是对待特定问题求解步骤的一种描述,是指令的有限序列.算法应该具有以下特性:
设计一个好的算法通常需要考虑以下要求: 正确,可读,健壮,高效.
1.5 算法性能分析和度量
求解同一个问题,可以有许多不同的算法,那么如何评价算法的优劣?
然而计算硬件等各种因素不能确定的情况下,很难计算算法的执行时间,于是我们采用以下两种指标:
一个程序的时间复杂度是指程序运行从开始到结束所需要的时间T(n),一般要精确计算T(n)很困难,于是我们引入"渐近时间复杂度"
T(n)=2,7*n^3+3.8*n^2+5.3 则T(n)=O(n^3)
时间复杂度的排序:
O(1)<O(log(n)<O(n)<O(nlog(n))<O(n^2)<O(n^3)<...<O(2^n)
2. 空间复杂度
一个程序的空间复杂度是指程序运行从开始到结束所需要的存储量.S(n)=O(f(n))
程序设计部分:
首先,这里介绍一下k阶的斐波那契数列
定义:f0=0,f1=0,...,f(k-2)=0,f(k-1)=1;
fn=f(n-1)+f(n-2)+...+f(n-k) ,n=k,k+1,...
试编写k阶斐波那契序列的第m项值的函数算法,k和m均以参数的形式在参量表中出现
int k_fib(int k,int m) { int f; if(m<k-1) f=0; else if(m==k-1) f=1; else { f=0; for(int i=1;i<=k;i++) f+=k_fib(k,m-i); } return f; }
一元多项式的计算
#include<iostream> using namespace std; int main(void) { int i,n; double x,a,s; cin>>n; cin>>x; s=0; for(i=0;i<=n;i++) { cin>>a; s=s*x+p; //a下标依次是n,n-1,n-2,...0 } cout<<s<<endl; }
标签:
原文地址:http://www.cnblogs.com/SqLver/p/4906932.html