zoukankan      html  css  js  c++  java
  • 算法学习-顺序查找

    查找一个数组中是否有复合目标的key值。

    通常做法是遍历一遍数字,找到相等的值的下标。

    public class MySearch  {
        private  int[] array;
        public SequentialSearch(int[] array){
            this.array=array
        }
        
        public int search(int key){
           for (int i=0;i<array.length;i++){ if(array[i]==key){ return i; } } return -1; } }

    当然,可以改进的地方是 设定一个临时变量,找到目标索引下标后break。

    还有另外一种思路。通过讲目标值插到索引0的位置,倒序进行比较。这种方式能避免数组越界的比较。

        public int search2(int key){
            //先判断是否是下标为0的元素
            if(key==array[0]){
                return  0;
            }
            int temp=array[0];//赋值给下标为0的元素
            array[0]=key;
            int i=array.length-1;
            //倒序比较
            while(array[i]!=key){
                i--;
            }
            array[0]=temp;
            if(i==0){
                return  -1;
            }
            return  i;
        }
    

      

  • 相关阅读:
    Unity中的欧拉旋转
    Unity-Rigidbody碰撞穿透
    C#实现单例模式的几种方法
    C#OO初级思想
    C#虚方法virtual
    数据库查询
    DNS 域名服务器搭建
    iptables 基本操作
    通过adb 操作手机
    linux 调整逻辑卷空间大小
  • 原文地址:https://www.cnblogs.com/GallopingSnail/p/14381563.html
Copyright © 2011-2022 走看看