算法05 五大查找之:顺序查找

笔记仓库:https://github.com/nnngu/LearningNotes


这一篇要介绍的是算法中的查找算法。查找在我们生活中无处不在,比如查公交,查机票,查酒店等等。

首先看一下查找的分类。如下图:

那么这一篇要总结的是顺序表中的顺序查找。

什么是顺序查找呢?顺序查找就是遍历整个列表,逐个元素与给定值比较,若某个元素和给定值相等,则查找成功。如果直到最后一个元素和给定值比较都不相等,则查找失败。

顺序查找的代码实现

SequenceSearch.java

public class SequenceSearch {
    public static void main(String[] args) {
        int[] list = {90, 10, 20, 50, 70, 40, 80, 60, 30, 52};
        System.out.println("************顺序查找************");
        display(list);
        System.out.println("");

        int result = sequenceSearch(list, 50);
        if (result != -1) {
            System.out.println("50在列表中的位置是:" + result);
        } else {
            System.out.println("对不起,列表中不存在该元素!");
        }
    }

    /**
     * 顺序查找
     */
    public static int sequenceSearch(int[] list, int key) {
        for (int i = 0; i < list.length; i++) {
            // 找到该元素,返回位置序号
            if (list[i] == key) {
                return i;
            }
        }
        // 没有找到
        return -1;
    }

    /**
     * 遍历打印
     */
    public static void display(int[] list) {
        System.out.println("********展示开始********");
        if (list != null && list.length > 0) {
            for (int num :
                    list) {
                System.out.print(num + " ");
            }
            System.out.println("");
        }
        System.out.println("********展示结束********");
    }
}

运行结果: