首页 > 技术文章 > Java 实现顺序查找

Janejxt 2016-09-01 16:34 原文

 1 package search;
 2 
 3 import java.util.Scanner;
 4 
 5 /*通常把查找过程中对关键字的平均比较次数,也叫平均查找长度(ASL)作为衡量一个查找算法效率优劣的标准:
 6  * ASL=求和(p[i]*c[i]),(i=1~n)。P[i]找到第i个记录的概率,c[i]找到第i个记录进行比较的次数*/
 7 /*顺序查找的思想:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k比较,若当前扫描的关键字与k相等,则查找成功,
 8  * 若扫描结束后,任未发现关键字等于k的记录,则查找失败。
 9  * ASL1查找成功(求和)i/n,i=1~n.
10  * ASL2查找失败n*/
11 
12 //第一行输入要查找的序列,第二行输入关键字
13 public class shunxusearch {
14 
15     public static void main(String[] args){
16         Scanner cin = new Scanner(System.in);
17         String[] s= new String[2];
18         for(int i =0;i<2;i++){
19             s[i] = cin.nextLine();
20         }            
21         String[] st = s[0].split(" ");
22         int[] c = new int[st.length];
23         for(int j=0;j<st.length;j++){
24             c[j]=Integer.parseInt(st[j]);
25         }
26         int key = Integer.parseInt(s[1]);
27         int result = search(c,key);
28         System.out.println(result);
29         cin.close();    
30     }
31     public static int search(int[] R,int k){
32         int i,n=R.length;
33         for(i=0;i<n;i++){
34             if(R[i]==k){
35                 return i;
36             }    
37         }
38         return -1;
39     }
40 }

 

推荐阅读