[알고리즘, 자료구조] 자연정렬된 키워드를 검색(Arrays.binarySearch)
2024. 6. 24. 21:59ㆍWebBack/알고리즘
알고리즘, 자료구조 | 링크 |
선형검색 | https://ycraah.tistory.com/18 |
보초법 | https://ycraah.tistory.com/24 |
이진검색 | https://ycraah.tistory.com/27 |
Arrays.binarySearch를 이용한 이진검색 | https://ycraah.tistory.com/28 |
자연정렬이란?
정렬에는 문자열 정렬과 자연 정렬이 있다. 문자열 정렬은 동일한 위치에 있는 문자의 대소를 비교하여 정렬을 한다. 반면에, 자연 정렬은 사람에게 더 자연스러운 정렬 방식을 말한다.
ex) 문자열 정렬 : 텍스트1, 텍스트10, 텍스트100, 텍스트2, 텍스트21
ex) 자연 정렬 : 텍스트1, 텍스트2, 텍스트10, 텍스트21, 텍스트100
사용법은?
Arrays.binarSearch(Object[] a, Object key)
원리는?
binarySearch 메서드는 Comparable<T> 인터페이스와 compareTo메서드를 구현하고 있기 때문에 자연 정렬된 문자를 비교하는 것이 가능하다.
public class StringBinarySearch {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
String[] x = {
"abstract", "assert", "boolean", "break", "byte",
"case", "catch", "char", "class", "const",
"continue", "default", "do", "double", "else",
"enum", "extend", "final", "finally", "float"
};
System.out.print("원하는 키워드를 입력하세요.: ");
String ky = stdIn.next();
int idx = Arrays.binarySearch(x, ky);
if(idx < 0)
System.out.println("해당 키워드가 없습니다.");
else
System.out.printf("해당 키워드는 x[%s]에 있습니다.\n", idx);
}
}
배열에 검색값이 없으면 음수를 반환하기 때문에 idx가 음수면 키워드가 없음을 알리는 내용이 출력된다.
'WebBack > 알고리즘' 카테고리의 다른 글
[알고리즘] 평균 구하기 (0) | 2024.07.17 |
---|---|
[배열과 리스트] 숫자의 합 구하기 (0) | 2024.07.16 |
[알고리즘, 자료구조] Arrays.binarySearch에 의한 이진검색 (0) | 2024.06.24 |
[알고리즘, 자료구조] 이진 검색 (0) | 2024.06.22 |
[알고리즘, 자료구조] 보초법(sentinel method) (0) | 2024.06.20 |