顺序查找
基本思想:
顺序查找:从第一个元素开始按照顺序遍历待查序列,直到查找到目标或者查找失败。
特点:
对待查序列没有顺序要求(序列中的数可以是有序的也可以是无序的)。
缺点:
效率很低(最坏的情况需要遍历整个待查序列)。
性能分析:
- 需要时间:
平均查找长度 = 1/n(1+2+3+···+n) = (n+1)/2, 最坏情况需要遍历整个待查序列, 时间复杂度O(n)。 - 需要空间:
1个待查序列 + 1个目标元素。
Java代码实现:
说明:用for循环或者foreach都可以,看个人习惯。
public class SequentialSearch {
public static void main(String[] args) {
int[] array = {4, 8, 9, 3, 100, 99, 22, 23, 77, 23};
int target = 23;
int i = sequentialSearch(array, target);
System.out.println("目标元素的数组下标为:" + i);
}
public static int sequentialSearch(int[] array, int target) {
for (int i = 0; i < array.length; i++) {
if (array[i] == target) {
System.out.println("目标元素:" + target + ",所在的数组下标为:" + i);
return i;
}
}
System.out.println("没有查找到该目标元素");
return -1;
}
public static int sequentialSearch2(int[] array, int target) {
for (int element : array) {
if (element == target) {
System.out.println("目标元素:" + target + ",所在的数组下标为:" + element);
return element;
}
}
System.out.println("没有查找到该目标元素");
return -1;
}
}
|