在一个数组中查找数据时经常用到的操作,如在一个班级学生档案集中查找某个学生的记录。这里讲此文件进行简化,程序随机生成一个20个整数数据的数组,然后输入要查找的数据。接着,可以采用最简单的逐个对比的方法进行查找,即顺序查找的方法,这种方法的伪代码示例如下:
变量X<-输入待查找的数据
变量arr<-随机生成数据数组
for 1 to 20 if arr[i]==x break;找到数据 else
输出数据位置
程序结束
上述伪代码仅表示了算法的一个基本流程,并非真正的算法程序代码。但从这里可以看出该程序的基本结构。首先输入待查找的数据,并生成一个随机的数据数组,然后从头到尾对数据进行逐个比较,当数据相等时找到数据,并输出该数据的位置。
import java.util.Random; import java.util.Scanner; public class test { static int N = 20; public static void main(String[] args) { int[] arr = new int[N]; int x,n,i; int f = -1; Random r = new Random(); for(i=0;i<N;i++) { arr[i] = r.nextInt(100); } System.out.println("生成的数组序列:"); for(i=0;i<N;i++) { System.out.println(arr[i]); } System.out.println("输入要查找的整数:"); Scanner input = new Scanner(System.in); x = input.nextInt(); for(i=0;i<N;i++) { if(x == arr[i]) { f = i; break; } } if(f == -1) { System.out.println("NOT FOUND"); } else { System.out.println("I="+i); } } }
生成的数组序列: 3 25 7 4 7 18 8 22 7 85 45 56 73 57 93 12 44 12 53 8 输入要查找的整数: 8 I=6