티스토리 뷰

java 에서 binarySearch 를 사용할 때 주의할 점 / 바이너리 검색

 

출처 : http://i5on9i.blogspot.kr/2013/03/java-binarysearch.html

 


오랜만에 binarySearch 를 사용하는데, 결과값이 이상하게 나왔다. 그래서 잠깐 또 구글의 도움을 받아서 기억을 다시 상기시키고, 그리고 혹시 다시 찾게 될까 봐 정리를 해 놓는다.

binarySearch 사용시 주의할 사항

  1. binarySearch 는 array 가 이미 sort 가 되어있다는 전제를 하고 검색을 한다.
  2. binarySerarch 가 사용하는 Comparator 가 sort()에 사용된 Comparator 와 같아야 한다.
public class MainClass {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String key1 = "ssds";
		String key2 = "abc";
		String[] params = {key1, key2 };
		List<String> list = Arrays.asList(params);
		
		Collections.sort(list); // 이 sort() 가 없으면 결과 값이 달라진다.
		for(String s: list){
			System.out.println(s);
		}
		int pos = Collections.binarySearch(list, key2);
        
        
		System.out.println(pos);
	}
}



Reference

  1. http://www.coderanch.com/t/557180/java/java/collections-binarysearch-returns-wrong-output
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함