算法和算法的时间复杂度
算法是描述求解问题方法的操作步骤集合 描述算法的语言主要有三种形式:文字形式、伪代码形式和陈旭设计语言形式。
文字形式指用英文和中文 伪代码指用一种仿程序设计语言的语言 直接使用高级陈旭设计语言描述算法的优点是算法描述简捷易读 又可以直接输入计算机调用运行。
//把数组中n个元素逆置算法
void reverse(DataType a[],int n,DataType b[]){
int i;
for(i=0;i<n;i++)
b[i]=a[n-i-1];
}
//把数组中的n个元素就地逆置算法
void Reverse(DataType a[].int n){
int i,m=n/2; //就地逆置 采用折中一半的方式进行遍历 “/”运算符表示整数相除 商只取整数部分
DataType temp; //目的临时转换
for(i=0;i<m;i++){ //进行m次调换
temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=trmp;
}
}
算法的性质和设计目标:
- 输入性:具有零个或若干个输入量
- 输出性:至少产生一个输出量或执行一个有意义操作
- 有限性:执行语句的序列是有序的
- 确定性:每条语句的含义明确,无二义性
- 可执行性:每条语句都应在有限的时间内完成
算法设计应满足:
- 正确性
- 可读性
- 健壮性
- 高时间效率
- 高空间效率
算法的耗时与算法所处理数据元素个数n的函数关系的分析称作算法的时间效率分析也称为算法的时间复杂度分析 主要指分析算法的耗时与算法所处理数据元素个数n的数量级意义上的函数关系
时间复杂度我不知道怎么写 一般情况下有几个for 我就有n的多少次方 只是一部分