线性查找
说明:线性查找适合于存储结构为顺序存储或链接存储的线性表。
思想:对于一个顺序储存的数据,线性查找就是从这顺序数据的头开始遍历到尾,如何匹配到数据就说明查找到了,如果没有则返回没有查找到数据。
代码现实:
public class Line {
public static void line_search(int arr[], int tmp){
int index = -1;
boolean flag = false;
for(int i = 0; i < arr.length; i++){
if(arr[i] == tmp){
index = i+1;
flag = true;
break;
}
}
if(flag == false){
System.out.println("没有找到!");
}else{
System.out.println("位置:" + index);
}
}
public static void main(String[] args) {
int arr[] = {1, 2, 5, 7, 4, 8, 9};
line_search(arr, 8);
}
}
复杂度分析:
查找成功时的平均查找长度为:(假设每个数据元素的概率相等) ASL = 1/n(1+2+3+…+n) = (n+1)/2 ;
当查找不成功时,需要n+1次比较,时间复杂度为O(n);
所以,顺序查找的时间复杂度为O(n)。