改进的顺序检索就是在顺序检索的基础上,先对给定的数组排序,然后再顺序检索,下面的算法还给出了检索次数以及检索时间。
//改进的顺序检索
public class Shunxvgaijin {
public static void main(String[] args) {
int a[]= {1,25,33,14,75,26,17,84,9,10,19,2,43}; //定义被检索数组
Arrays.sort(a); //对数组进行排序
//输出数组内容
System.out.println("数组顺序为:");
for(int n : a){
System.out.print(n+" ");
}
System.out.println("\ninput your number:");
//获取输入的数据
Scanner input= new Scanner(System.in);
float input1=input.nextFloat();
long startTime = System.nanoTime();//开始时间
int j = 0;
while(true) {
if(j==a.length-1) {
System.out.println("查找失败,比较次数为"+(j+1)+"次");
break;
}
if(a[j]>input1) {
System.out.println("查找失败,比较次数为"+(j+1)+"次");
break;
}
if(a[j]<input1) {
j++;
continue;
}
if(a[j]==input1) {
System.out.println("查找成功,比较次数为"+(j+1)+"次");
break;
}
}
long consumingTime = System.nanoTime() - startTime; //消耗时间
System.out.println("耗时"+consumingTime/1000+"微秒");
}
}