Java 实现顺序查找
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 }