一个算法实例:查找数字

在一个数组中查找数据时经常用到的操作,如在一个班级学生档案集中查找某个学生的记录。这里讲此文件进行简化,程序随机生成一个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