美文网首页
遍历查找

遍历查找

作者: 腹黑小叶子orz | 来源:发表于2017-07-29 18:55 被阅读0次

查找中最简单的是遍历查找,但同时也是很麻烦的,从头至尾,挨个查找。

遍历查找的时候,可以设一个下标不正确的数,最好使用负数,因为数组中正确的下标是从0开始到1结束,所以定义负数是比较正确的选择。

我想在一个数组中找到一个数字,比如5,可以定义一个index,后面的函数中的参数,可以用arr表示数组,5表示要查找的数。如:

int index = findNumber(arr, 5);

代码如下:

import java.util.Scanner;

class NormalSearch {
 public static void main(String[] args) {
  int[] arr = new int[10];//定义数组
  
  boolean ret = getNumFromStdin(arr);//getNumFromStdin是布尔型,有返回值,从屏幕上获取数字作为数组的元素,再次获得了10个元素,并且用布尔型为下面的查找数字做判断
  
  if (ret) {

   int index = findNumber(arr, 5);//找数组里元素是5
   if (index >= 0) {//index在下面定义为-1,若是没有找到index值不会改变,此处就会执行not found
    System.out.println("5 at " + index);
   } else {
    System.out.println("Not Found!");
   }
  }
  
  
  
 }
 
 //需求:从一个数组中找到用户输入的数所在下标
 /**
  功能:从给定的数组中找到find
  参数: int[] arr 要查询的数组
     int find 给定要查找的数
  返回值: int 类型, 找到返回 有效下标 如果没有找到返回 -1
    如果参数 有误 返回 -2
 */
 public static int findNumber(int[] arr, int find) {
  //参数合法性判断
  if (arr == null || arr.length == 0) {
   System.out.println("Input Param is invalid!");
   return -2; //表示函数运行失败
  }
  
  int index = -1;  //0 ~ 9是合理的下标
  //利用循环遍历查找
  for (int i = 0; i < arr.length; i++) {
   if (find == arr[i]) {
    index = i;//将得到的i值赋给index,作为找到的数字传递出去
    break; //跳出循环,已经找到了对应值下标
   }
  }
  
  return index;//返回数值
 }
 
 public static boolean getNumFromStdin(int[] array) {
  //参数合法性判断
  if (array == null || array.length == 0) {
   System.out.println("Input Param is invalid!");
   return false; //表示函数运行失败
  }
  
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入" + array.length + "个数:");
  
  for (int i = 0; i < array.length; i++) {
   array[i] = sc.nextInt();//将屏幕上得到的数字一一赋值给数组。
  }
  
  return true;
 }
 
 public static void printArray(int[] array) {
  //参数合法性判断
  if (array == null || array.length == 0) {
   System.out.println("Input Param is invalid!");
   return; //传入参数不合法,结束函数运行
  }
  
  //利用for循环打印数组
  for (int i = 0; i < array.length; i++) {
   System.out.println("array[" + i + "] = " + array[i]);
  }
  //这里可以不用写return 因为函数没有返回值
 }
}

步骤:

1.定义数组

2.先进行找到数值的函数书写,利用遍历查找。遍历查找就是一一对比,设定一个不正确的值,若找到则进行更改。

3.获得数组的字符的操作。从屏幕上获取数字的Scanner。利用布尔类型传递真假。

4.打印数组的操作,利用for循环,一一打印

5.对获取数字的操作进行接收,boolean判断,为下一步的找到数字的函数调用做准备。

6.利用上面获取数组的操作,判断是否找到

7.找到进行打印输出。

最后的5,6,7其实是一个嵌套的过程。当屏幕上获取数字是正确的时候,if的值为true,进行查找,当可以查找到的时候,在进行打印输出。

相关文章

  • 遍历查找

    查找中最简单的是遍历查找,但同时也是很麻烦的,从头至尾,挨个查找。 遍历查找的时候,可以设一个下标不正确的数,最好...

  • 查找算法——遍历查找

    查找:指在一个在一个数据集合中查找指定数据项 遍历查找:一个一个挨个查找 特点:(1) 简单,但最常用(2) 适...

  • Array常用方法总结

    查找 遍历 拷贝 增删 排序

  • Java快速排序

    线性查找 1.定义: 线性查找是按照序列原有顺序对数组进行遍历比较查询的基本查找算法 2.原理: 通过遍历数组来寻...

  • FIND实时查找

    文件查找find :实时查找工具,通过遍历指定路径完成文件查找 语法:find [OPTION]... [查找路径...

  • dom遍历查找

    1.children()选取子元素 2.parent()选取父元素 3.parents()选取祖先元素 通常要加参...

  • 99-数据结构和算法

    难点:二叉树的遍历 红黑树 图的遍历 二叉查找树二叉查找树(binary search tree),二叉查找树在二...

  • 二分法查找

    二分法基本查找 二分法遍历查找

  • Find命令

    find在不指定查找目录的情况下是对整个系统进行遍历查找 使用格式:find[指定查找目录][查找规则][查找完后...

  • Set

    下面是set的添加 删除 查找 遍历 清空

网友评论

      本文标题:遍历查找

      本文链接:https://www.haomeiwen.com/subject/ukwqlxtx.html