搜索
在编程中,它是在值列表中找到给定值位置的过程。在我们的日常生活中,它扮演着如此重要的角色,它可以从数据集合中找到一些东西,您可能需要从字典中找到一个单词或从人群中找到您的朋友。
线性/顺序搜索
- 这是基本的简单搜索算法
- 在顺序搜索中,我们将目标值与列表中给出的所有其他元素进行比较。例如 arr = {18, 12, 19, 77, 29, 50} (未排序的数组)目标 = 77
在上面的示例中,目标值以顺序/线性方式与数组中的所有元素进行比较。
时间复杂度:
最佳情况:O(1) -> 常数
How many checks will the loop make in the best case ie the element will be found at the 0th index that is only one comparison will be made for best case.
最坏情况:O(n)
Worst case, here it will go through every element and then it says element not found
public class Main { public static void main(String[] args) { int[] nums = {23, 45, 1, 2, 8, 19, -3, 16, -11, 28}; int target = 19; boolean ans = linearSearch(nums, target); System.out.println(ans); } // search in the array: return the index if item found // otherwise if item not found return -1 static int linearSearch(int[] arr, int target) { if (arr.length == 0) { return -1; } // run a for loop for (int index = 0; index < arr.length; index++) { // check for element at every index if it is = target int element = arr[index]; if (element == target) { return index; } } // this line will execute if none of the return statements above have executed // hence the target not found return -1; } }
有关线性搜索算法的进一步说明,请查看这个精彩的教程
Kunal Kushwaha在 Java 中的线性搜索