greenhelix
greenhelix
greenhelix
07-31 15:05
  • All (229)
    • Algorithm (118)
      • Algorithm (17)
      • Graph (0)
      • Core (6)
      • Python (18)
      • PythonSnippet (4)
      • Java (59)
      • Kotlin (14)
    • Project (0)
    • Study (8)
      • License (5)
      • EIP (3)
    • Programming (63)
      • Android (41)
      • Flutter (1)
      • Bugs Life (21)
      • Linux (0)
    • Tech (32)
      • Tech (17)
      • Drone (4)
      • Hacking (11)
    • Life (6)
      • INGRESS (1)
      • 심시티빌드잇 (0)
250x250

티스토리

hELLO · Designed By 정상우.
greenhelix

greenhelix

Binary Search 이진 탐색  이분 탐색
Algorithm/Algorithm

Binary Search 이진 탐색 이분 탐색

2021. 5. 6. 17:15

 

✊✋ Binary Search  ✋✊

이진탐색, 이분탐색 

 

 

0, 1, 0, 1??? 처음 이 알고리즘을 알았을 때는 0 과 1의 알고리즘인 줄 알았다. 

그러나 그러한 개념보다는 이진 탐색은 탐색시간을 단축시키기 위한 알고리즘으로 기억하는게 옳다.

반드시 정렬을 하여 사용하는데, 개인적으로 사용을 하면서 느낀점과 기억해야 할 것을 기록하려 한다. 

 

탐색할 자료를 둘로 나누어 해당 데이터가 있을 만한 곳을 탐색하는 방법이다. 

순차 탐색에 비해서는 굉장히 효율적이고 빨라보이지만, 반드시 정렬이 되어있어햐 하며, 

경우에 따라서는 쓰기 곤란한 경우가 있다. 

 

이진 탐색의 계산복잡도는 O(logn)

순차 탐색이 O(n)이다.

 

- 연결리스트의 경우 이러한 이진 탐색은 불가능 하다. (물론 구현은 가능하다. 번거로울 뿐) 

 

기본 함수 개념 코드 (수도 코드) 

def binary_search(find, data): 
	if len(data) == 1 and data[0] != find
    	return False
    elif len(data) == 1 and daa[0] == data:
    	return True 
    
    mid = len(data)//2
    
    if data > data[mid] :
    	return binary_search(find, data[:mid] 
    else: 
    	return binary_search(find, data[mid:]
        

 

 

 

 


참고 사이트 

잔재미 코딩 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Algorithm' 카테고리의 다른 글

불량사용자 - 카카오 코딩테스트  (0) 2021.05.06
🧩 코딩 테스트 정복기 @21#B*06  (0) 2021.02.18
[백트래킹] 퇴각검색  (0) 2021.02.18
    'Algorithm/Algorithm' 카테고리의 다른 글
    • Undirected Graph Adjacency List, Matrix:: 무 방향 그래프, 인접 목록, 행렬
    • 불량사용자 - 카카오 코딩테스트
    • 🧩 코딩 테스트 정복기 @21#B*06
    • [백트래킹] 퇴각검색
    greenhelix
    greenhelix
    개발에 관한 것들과 개인적인 것을 담는 블로그

    티스토리툴바