Advertisement
judarlima

binary search

Jan 13th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.96 KB | None | 0 0
  1. func binarySearch(by number: Int, at list: [Int]) -> String {
  2.     var left = list.startIndex
  3.     var right = list.endIndex - 1
  4.    
  5.     while true {
  6.         let errorMessage = "The number \(number) does not exist in this list"
  7.         let numberFound = "The number \(number) is in the list at index: "
  8.         let middle = (left + right) / 2
  9.        
  10.         if number < list[left] || number > list[right] {
  11.             return errorMessage
  12.         }
  13.         else if number == list[left] {
  14.             return numberFound + "\(left)"
  15.         }
  16.         else if number == list[right] {
  17.             return numberFound + "\(right)"
  18.         }
  19.         else if number == list[middle] {
  20.             return numberFound + "\(middle)"
  21.         }
  22.         else if number < list[middle] {
  23.             right = middle
  24.         }
  25.            
  26.         else if number > list[middle] {
  27.             left = middle
  28.         } else {
  29.             return errorMessage
  30.         }
  31.     }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement