이분 검색의 삽입방식은 맨 끝에 요소를 놓고 노말하게 삽입정렬을 하는 방식이다.
이 부분을 조금 더 빨리 개선할 수 있는 점이 보인다.
이미 정렬된 상태이므로 find와 유사한 함수를 만들어 들어갈 자리를 쉽게 찾을 수 있으리라 본다.
가령 1,3,5,9,11 등에서 7을 집어 넣는다 할 때
우선 7을 찾아보면
인덱스 2 중간값 5보다 큰 수이므로 오른쪽으로 가고
인덱스 3 중간값 9보다는 작으므로 다시 찾는 루틴을 시도하지만 조건 불만족으로 탈출할 것이다.
탈출시 조사한 곳의 mid값을 가지고 위치판단이 가능할 것이다.
위와 같은 식으로 자리를 찾는 수고를 덜 수 있으리라 본다. 찾을 때 O(N)을 O(lon(2)N) 수준으로 줄인다.
그 뒷자리 메모리를 일괄적으로 한칸씩 미는 수고는 어쩔 수 없지만,,,,,
이 부분을 조금 더 빨리 개선할 수 있는 점이 보인다.
이미 정렬된 상태이므로 find와 유사한 함수를 만들어 들어갈 자리를 쉽게 찾을 수 있으리라 본다.
가령 1,3,5,9,11 등에서 7을 집어 넣는다 할 때
우선 7을 찾아보면
인덱스 2 중간값 5보다 큰 수이므로 오른쪽으로 가고
인덱스 3 중간값 9보다는 작으므로 다시 찾는 루틴을 시도하지만 조건 불만족으로 탈출할 것이다.
탈출시 조사한 곳의 mid값을 가지고 위치판단이 가능할 것이다.
위와 같은 식으로 자리를 찾는 수고를 덜 수 있으리라 본다. 찾을 때 O(N)을 O(lon(2)N) 수준으로 줄인다.
그 뒷자리 메모리를 일괄적으로 한칸씩 미는 수고는 어쩔 수 없지만,,,,,
'자료구조, 알고리즘' 카테고리의 다른 글
레드블랙트리(RB Tree) 정리 및 분석 (1) | 2009.11.20 |
---|---|
B트리 삽입, 삭제 도식화와 좀 특이한 방식 분석 (1) | 2009.11.19 |
이진 트리 검색(Binary Tree Search), 기수 검색(Radix Tree, Radix Trie Search) (0) | 2009.11.18 |
병합정렬(합병정렬) mergesort 여러 소스 코드들 참조. (2) | 2009.11.16 |
병합정렬(Merge Sort) 분석과 소스 작성해 보기 (2) | 2009.11.16 |
힙정렬(Heap Sort) - topdown, bottomup 두 방식 소스 작성과 비교 등등 해봄 (0) | 2009.11.15 |
퍼옴) STL에서 채택한 정렬방식 (2) | 2009.11.14 |