顺序查找:从头开始一个一个地往后逐个比较,知道找到与给定的关键字相同的数。
顺序查找的实现代码如下:
package com.threeTop.www;
/***
* 顺序查找的实现
* @author wjgs
*
*/
public class SequentialSearch {
private int []array;
//构造函数实现初始化
public SequentialSearch(int []array)
{
this.array=array;
}
/**
* 直接顺序查找
* @param key
*/
public int search(int key)
{
for(int i=0;i<array.length;i++)
{
if(array[i]==key)
{
return i;
}
}
return -1;
}
/**
* 哨兵方式顺序查找,比较操作比先前少了一半
* @param key
*/
public int search2(int key)
{
//先判断是否为下标为0的元素
if(key==array[0])
{
return 0;
}
//临时保存array[0]
int temp=array[0];
array[0]=key;
int i=array.length-1;
while(array[i]!=key)
{
i--;
}
array[0]=temp;
//如果为0则没有找到
if(i==0)
{
return -1;
}
return i;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int []array={5,9,1,9,5,3,7,6,1,10,4};
SequentialSearch sequentialsearch=new SequentialSearch(array);
System.out.println(sequentialsearch.search(10));
System.out.println(sequentialsearch.search2(10));
}
}