JAVA/개념정리
탐색 알고리즘 - 일반 검색
hyun9_9
2023. 11. 23. 16:31
하나씩 비교해가며 원하는 값을 찾아내는 방법을 말한다
예제로 쉽게 알아 보자
1~10중에 5개의 정수를 저장
그 중 2를 찾아내어 있다면 "찾았다", 2의 위치를 출력
import java.util.Random;
public class Test06 {
public static void main(String[] args) {
Random rand=new Random();
int [] datas=new int [5];
for(int i=0;i<datas.length;i++) {
datas[i]=rand.nextInt(10)+1;
}
for(int data:datas) {
System.out.println(data+ " ");
}
System.out.println();
int key=2;//우리가 찾을 정수
int keyIndex=-1;//우리가 찾을 정수가 존재하는 위치.index
//검색시 초기화값은 "대상의 범위가 아닌값" 으로 해야합니다
for(int i=0;i<datas.length;i++) {
if(key==datas[i]) {
keyIndex=i;
System.out.println("찾았다!");
break;//찾았으면 즉시 종료
}
}
//System.out.println("찾는 값 "+key+"는 ["+keyIndex+"]에 있습니다");
//조건 없이 사용하면 안되는 이유(오류이유) :
//keyIndex 존재하지 않을수도 있기 떄문이다(초기화가 안되어있다)
if(keyIndex>=0) {
System.out.println("찾는 값 "+key+"는 ["+keyIndex+"]에 있습니다");
}
else {
System.out.println(key+"은 없습니다..");
}
}
}