4.1 算法
前面我们已经讲过,程序=数据结构+算法。
什么是算法?对一个现有的问题我们采取的解决过程及方法,即为算法。一个用算法实现的程序会耗费两种资源:处理时间和内存。
算法的效率分析标准:
时间复杂度
空间复杂度
简单性和清晰性
对于时间复杂度,可以通过System.currentTimeMillis()方法来测试。例如:public class Test
{
public static void main(String args[])
{
System.out.println(System.currentTimeMillis());
fun();
System.out.println(System.currentTimeMillis());
}
public static void fun()
{
double a = 0;
for(int i = 0; i < 10000; i++)
for(int j = 0; j < 10000; j++)
for(int k = 0; k < 100; k++)
a++;
}
}
前后两次获得当前系统时间的差值就是运行所消耗的时间(毫秒为单位)。
通过System.currentTimeMillis()方法来测试的缺点:
a.不同的平台执行的时间不同
b.有些算法随着输入数据的加大,测试时间会变得不切实际!
4.2 查找
4.2.1 查找之线性查找(直接查找)
算法思路:从数组的第一个元素开始查找,并将其与查找值比较,如果相等则停止,否则继续下一个元素查找,直到找到匹配值。
注意:被查找的数组中的元素可以是无序的、随机的。
实例:
import java.util.*;
public class Demo1
{
public static void main(String args[])
{