Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func binarySearch(by number: Int, at list: [Int]) -> String {
- var left = list.startIndex
- var right = list.endIndex - 1
- while true {
- let errorMessage = "The number \(number) does not exist in this list"
- let numberFound = "The number \(number) is in the list at index: "
- let middle = (left + right) / 2
- if number < list[left] || number > list[right] {
- return errorMessage
- }
- else if number == list[left] {
- return numberFound + "\(left)"
- }
- else if number == list[right] {
- return numberFound + "\(right)"
- }
- else if number == list[middle] {
- return numberFound + "\(middle)"
- }
- else if number < list[middle] {
- right = middle
- }
- else if number > list[middle] {
- left = middle
- } else {
- return errorMessage
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement