Swift) 탐색(1)
완전 탐색 / 이진 탐색
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