java public class SequentialSearch { public int search(int[] array, int target) { for (int i = 0; i < array.length; i++) { if (array[i] == target) { return i; // 返回目标元素的索引 } } return -1; // 如果未找到目标元素,返回-1 } }
java public class BinarySearch { public int search(int[] array, int target) { int left = 0; int right = array.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (array[mid] == target) { return mid; } else if (array[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return -1; // 查找失败 } }
在实际应用中,为了提高灵活性和可拓展性,通常会将查找接口与具体实现分离。例如:
java public interface Search { int search(int[] array, int target); }