基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键宇和给定值K相比较。若当前扫描到的结点关键字与K相等,则查找成功;若扫描结束后,仍未找到关键字等于K的结点,则查找失败。
顺序查找的优点:
算法简单,且对表的结构无任何要求,无论是用向量还是用链表来存放结点,也无论结点之间是否按关键字有序,它都同样适用。
顺序查找的缺点:
查找效率低,因此,当n较大时不宜采用顺序查找。
实现代码:
public class SequenceSearch {
/**
* @param args
*/
public static void main(String[] args) {
int[] array = { 2, 3, 5, 8, 7 };
int result = sequenceSearch(array, 3);
if (result != -1)
System.out.println("已经在数组中找到,索引位置为:" + result);
else
System.out.println("没有此原始");
}
//顺序查找
public static int sequenceSearch(int[] array, int key)
{
for (int i = 0; i < array.length; i++)
{
//查找成功,返回序列号
if (key == array[i])
return i;
}
//未能查找,返回-1
return -1;
}
}
运行结果:
已经在数组中找到,索引位置为:1