人们解决问题的思想方法步骤都有可以称之为算法算法是指令的集合,是为了解决问题而进行的一系列的操作,他明确了可计算的过程,以一个数据结合作为输入,以一个数据集合作为输入,算法通常来说有五个特性(输入,输出,可行性,有穷性,确定性)简单的说算法就是就是解决问题的过程在其中时间复杂性以及空间复杂性是是评价一个算法是否成功的最好标准,所谓的时间复杂性,并不是要计算出程序运行所需要的时间,因为运行的时间受好多因素的影响,例如 操作系统,计算机硬件等等,所以计算机运行的次数就是时间复杂性的标准。例如下面的程序:
public void selectstart(int[ ] a){
int n = a.length;
For(int k=0;k=n-1;k++)
{int min=k;
For(int i =k+1;i<n;i++)
If (a[i]<a[min])
min=i;
If(k!=min){
Int temp=a[k];
a[k]=a[min];
a[min]=temp;
}
}
}
在这个程序中有两个循环,在第一个循环中,每次循环就相当一个包袱,每个包袱之中都包含着n-k-1循环所以总共的循环次数为(n-1)+(n-2)+..........+1在第二次循环之中执行的交换语句之中0~3(n+1)执行的总次数为在你n(n-1)/2到n(n-1)/2+3(n-1)之间
时间复杂度有三种表现方式,其中包括时间复杂度上界(o),时间复杂度下界(Ω),精确阶(θ )。
当输入大于一个值是:∀n>=N,T(n)<=c.f(n)
则T(n)=of(n)或者是T(n)比上f(n)的极限是一个确定的值那么时间复杂性上界为o(n^2)时间复杂性下界为Ω(n^2)精确阶为θ(n^2)
所谓的空间复杂性就是程序运行所需要的存储空间,其中不包括运行示例所占的空间。