Java查找算法(二): 顺序查找

[ 什么是顺序查找 ] 

顺序查找又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个或最后一个记录开始,逐个和给定的值比较,如相等则查找成功;如直到最后一个值仍不等时,则表中没有所查的记录,查找不成功。


[ Java实现顺序查找 ] 

public class SequentialSearch {
	public static void main(String[] args) {
		Integer target = 6;
		Integer[] iArr = { 3, 2, 6, 8, 5, 1, 7, 9 };
		Integer index = sequentialSearch(iArr, target);
		System.out.println(index);
	}

	public static <T> Integer sequentialSearch(T[] t, T target) {
		for (int i = 0; t != null && i < t.length; i++) {
			if (t[i] == target) {
				return i;
			}
		}
		return -1;
	}
}

[ 顺序查找的优缺点 ] 

优点:代码简单易懂

缺点:当数据量大的时候,查找效率极为低下,所以该算法适合小量数据。


[ 顺序查找的算法复杂度 ] 

查找成功最好的情况是在第一个位置就找到了,算法时间复杂度为O(1)

最坏的情况是在最后一个位置就找到了,时间复杂度为O(n)

关键字在任何一个位置的概率是相同的,所以平均查找次数为(n+1) / 2,所以最终时间复杂度为O(n)



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。