Swift) 탐색(1)

less than 1 minute read

완전 탐색 / 이진 탐색

Brute Force(완전 탐색)

0번 index 부터 마지막 index 까지 차례대로 비교하면서 원하는 데이터를 탐색

  • 데이터를 찾으면 true 리턴. 없으면 false 리턴.
    func sequencial(_ array: [Int], num:Int) -> Bool {
      for element in array {
          if num == element {
              return true
          }
      }
      return false
    }
    

    Binary Search(이진 탐색)

  • 탐색할 자료가 정렬되어 있을 때만 사용 가능.
  • 탐색할 자료를 둘로 나누어서 해당 데이터가 있을 곳을 탐색.
func binarySearch(_ array: [Int], num: Int) -> Bool {
    var start = 0
    var end = (array.count - 1)
    
    while start <= end {
        let mid = (start + end) / 2
        
        if array[mid] == num { return true }
        if array[mid] > num {
            end = mid - 1
        } else {
            start = mid + 1
        }
    }
    return false
}

출처

출처ㅣhttps://babbab2.tistory.com/101?category=908012

출처ㅣhttps://babbab2.tistory.com/102?category=908012