每天一个算法(5): 线性查找

线性查找

说明:线性查找适合于存储结构为顺序存储或链接存储的线性表。
思想:对于一个顺序储存的数据,线性查找就是从这顺序数据的头开始遍历到尾,如何匹配到数据就说明查找到了,如果没有则返回没有查找到数据。
代码现实

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)。

猜你喜欢

转载自blog.csdn.net/yhflyl/article/details/80939597