顺序表查找及其优化(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"); } }