heoblitz
Blitz.dev
heoblitz
전체 방문자
오늘
어제
  • 분류 전체보기 (36)
    • iOS Dev (22)
      • iOS (3)
      • Swift (7)
      • Testing (3)
      • Reactive (2)
      • Architecture (2)
      • Layout (1)
    • PS (4)
      • Algorithm (4)
    • Other (9)
      • Springboot (3)
      • Linux (1)
      • Python (1)
      • Java (1)
      • React (1)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • URLSession
  • Test Code
  • java
  • xcode
  • gradle
  • ARC
  • RxSwift
  • SWIFT
  • github
  • chrome-extension
  • Git
  • XCTest
  • codingtest
  • Code Review
  • swift 윈도우
  • IOS
  • 오픈소스
  • intellij
  • springboot
  • swift 5

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
heoblitz

Blitz.dev

PS/Algorithm

이분 탐색 ( Binary Search / Swift ) - 1

2020. 10. 2. 23:36

 이분 탐색은 정렬된 데이터에서 값을 빠르게 찾는 방법 중 하나입니다.

 

일반적인 방법으로 위와 같은 Int 배열에서 "9" 를 찾는다고 가정하면, O(n) 시간 복잡도를 가집니다. 

 

이분 탐색은 첫 인덱스가 아닌 중간부터 값을 비교하여 탐색할 구간을 정합니다.

 

start, mid, end 가 기준점이 되어 구간을 선택하고, 필요 없는 구간은 탐색하지 않기 때문에,

 

O(logN) 의 시간 복잡도를 가집니다. 

 

 

 

주의점으로는 "정렬되어 있는 데이터" 에서만 사용이 가능하다는 점입니다.

 

 

비정렬된 상태에서 사용될 때 정렬 알고리즘 + 이분 탐색 방법이 더 효율적일지,

 

혹은 선형 탐색 알고리즘이 더 나을지는 개발자의 판단이 필요합니다.

 

 

 

 

다음으로는 이분 탐색의 활용으로 파라메트릭서치(Parametric Search) 와

 

상한, 하한선 (Lower Bound, Upper Bound) 에 대해 포스팅하겠습니다.

 

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

코딩테스트를 위한 Swift 필수 자료구조 구현하기  (2) 2022.01.11
네이버 체험형 인턴 코딩테스트 후기  (0) 2021.01.04
이분 탐색 ( Parametric Search, lower, upper Bound / Swift ) - 2  (0) 2020.10.03
    'PS/Algorithm' 카테고리의 다른 글
    • 코딩테스트를 위한 Swift 필수 자료구조 구현하기
    • 네이버 체험형 인턴 코딩테스트 후기
    • 이분 탐색 ( Parametric Search, lower, upper Bound / Swift ) - 2
    heoblitz
    heoblitz
    iOS, Swift 관련 포스팅을 주로 작성합니다.

    티스토리툴바