顺序表查找及其优化,Java

顺序表查找(线性查找):

 1 private static void Ordersearch(int[] arr,int num) {
 2         for (int i = 0; i < arr.length; i++) {
 3             if (arr[i]==num) {
 4                 System.out.println(arr[i]);
 5                 return;
 6             }
 7         }
 8         System.out.println("not found ");
 9         
10 }

优化方案:上面的方式每次循环都要判断i是否越界,可以通过设置哨兵解决这个问题。

private static void Ordersearch(int[] arr,int num) {
        int count=arr.length-1;
        int min=arr[0];
        arr[0]=num;
        while(arr[count]!=num){
            count--;
        }
        if (min==arr[count]) {
            System.out.println(arr[count]);
        }else {
            System.out.println("not found");
        }
}