非常简单
示例1:在成绩中查询分数是100的第一个分数
示例2:在学生中查询分数是100的第一个学生
存储结构可以是顺序表,也可以是链表。
逐个比较查询,如果找到,返回数据或者索引,如果到最后也没有找到,返回null
可以是在顺序表中,也可以是在链表中
在各个节点查找概率相同情况下,默认查询长度为一半长度,所以时间复杂度是T(n) = O(n);
package com.bjsxt.ds.search;
/**
* 在成绩中查询分数是100的第一个分数
*
* T(n) = O(n)
* S(n) = O(1)
* @author Administrator
*
*/
public class TestSearch {
public static void main(String[] args) {
//定义一组分数
int [] scoreArr = {89,45,78,45,100,98,86,100,65};
int score = 100;
//进行查收
int index = search(scoreArr,score);
//输出结果
if(index == -1){
System.out.println("没有找到");
}else{
System.out.println("找到,索引是:"+index);
}
}
public static int search(int [] scoreArr,int score){
int index = -1;//默认没有找到
for(int i= 0;i<scoreArr.length;i++){
if(scoreArr[i] == score){
index = i;
break;
}
}
return index;
}
}
顺序查找的难点在于思路清寺,构建类并且去调用类