算法分析的框架
对于一个算法,应该知道如何去衡量的时间效率以及空间效率。但是,现在多研究对时间效率的衡量,空间效率在硬件的快速发展下已经不是那么重要了。那如何度量时间效率呢,就是基本操作的次数。所谓基本操作的次数,举个例子来说,在一维数组里面求最大值:
[java]
public class ArrayTester2 {
/**
* @param args
*/
public static void main(String[] args) {
int[] array = { 10, 20, 30, 40, 50, 60 };
int max = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
}
}
System.out.printf(max);
}
}
public class ArrayTester2 {
/**
* @param args
*/
public static void main(String[] args) {
int[] array = { 10, 20, 30, 40, 50, 60 };
int max = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
}
}
System.out.printf(max);
}
}
在上面的这个例子中基本操作次数就是if语句的比较:array[i] > max,因为每次循环都会执行这个操作,而max=array[i],是在if语句成立的条件下才执行的。可以总结为一个规律,那就是基本操作次数是算法最内存循环中最费时的操作。
补充:软件开发 , Java ,