精华内容
下载资源
问答
  • 顺序查找

    千次阅读 2020-04-13 06:24:51
    顺序查找: package com.neusoft.data.structure; /** * 顺序查找 * @author Administrator */ public class OrderSearch { /**顺序查找平均时间复杂度 O(n) * @param searchKey 要...
      

    顺序查找:

            package com.neusoft.data.structure;
    
    /**
     * 顺序查找
     * @author Administrator
     */
    public class OrderSearch {
        /**顺序查找平均时间复杂度 O(n)
         * @param searchKey 要查找的值
         * @param array 数组(从这个数组中查找)
         * @return  查找结果(数组的下标位置)
         */
        public static int orderSearch(int searchKey,int... array){
            for(int i=0;i<array.length;i++){
                if(array[i]==searchKey){
                    return i;
                }
            }
            return -1;
    
        }
        /**测试查找结果
         * @param args
         */
        public static void main(String[] args) {
            int[] test=new int[]{1,2,29,3,95,3,5,6,7,9,12};
            int index=OrderSearch.orderSearch(95, test);
            System.out.println("查找到的位置 :"+ index);
        }
    }
    
          

    输出:

    v2-7b96f747842cbe826ad5203d99edd6ba_b.jpg

    展开全文
  • 顺序查找

    基本思想:将带查找的关键字为key的元素从头到尾与表中元素进行比较,如果中间存在关键字为key的元素,则返回成功,否则,则查找失败。

    时间复杂度:O(n);

        //对数组从头开始遍历查找 
        int a[] = {1,2,3,4,5,6,7,8,9,10}; //待查找数组 
        int key = 11; //待查找元素 
        int i=0; //数组下标 
        //判断key与a[i]是否相等 
        while(key!=a[i]){
        //不等,则顺序查找下一数组元素 
        i++;
        //判断i,若i>=N,则查找失败 
    if(i<0){ 
    printf("未查找到");
    return 0;
    }
        }
        //输出查找的元素下标+1 

        printf("%d",i+1);

        //对数组从尾开始遍历查找 
        int a[N] = {1,2,3,4,5,6,7,8,9,10}; //待查找数组 
        int key = 0; //待查找元素 
        int i=N-1; //数组下标 
        //判断key与a[i]是否相等 
        while(key!=a[i]){
        //不等,则顺序查找下一数组元素 
        i--;
        //判断i,若i>=N,则查找失败 
    if(i<0){ 
    printf("未查找到");
    return 0;
    }
        }
        //输出查找的元素下标+1 
        printf("%d",i+1);


    展开全文
  • 查找-顺序查找

    2019-02-25 22:33:27
    参考:... ... 目录:顺序查找 二分查找 插值查找 斐波那契查找 分块查找 哈希查找 二叉树查找 红黑树查找 顺序查找 算法简介 顺序查找又称为线性查找,是一种最简单的查找方法。适用于线...

    参考:https://www.cnblogs.com/lsqin/p/9342929.html

    源码:https://github.com/sunrui849/selectAlgorithm

    目录:顺序查找

    二分查找

    插值查找

    斐波那契查找

    分块查找

    哈希查找

    二叉树查找

    红黑树查找

    顺序查找

    算法简介

           顺序查找又称为线性查找,是一种最简单的查找方法。适用于线性表的顺序存储结构和链式存储结构。该算法的时间复杂度为O(n)。

    基本思路

           从第一个元素m开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即m=x)时返回元素m的下标,如果比较到最后都没有找到,则返回-1。

    优缺点

        缺点:是当n 很大时,平均查找长度较大,效率低;
        优点:是对表中数据元素的存储没有要求。另外,对于线性链表,只能进行顺序查找。

    算法实现

    /**
         * 顺序查找
         * @param list
         * @param selectValue
         * @return
         */
        private static int select(List<Integer> list, int selectValue) {
            if (list == null || list.isEmpty()){
                return -1;
            }
    
            for(int i = 0;i < list.size(); i++) {
                if (selectValue == list.get(i)) {
                    return i;
                }
            }
    
            return -1;
        }

     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,757
精华内容 14,702
热门标签
关键字:

顺序查找