Ответ
Алгоритмы и структуры данных — фундамент для написания эффективного кода, особенно при работе с большими данными, сложными вычислениями или оптимизацией UI.
Почему это важно?
- Выбор оптимального решения: Понимание сложности O(n) vs O(n²) критично для производительности.
- Системные фреймворки: Алгоритмическое мышление помогает эффективно использовать Core Data, GCD, Core Animation.
- Техническое интервью: Необходимая база для собеседований.
Пример: бинарный поиск в отсортированном массиве
func binarySearch(_ array: [Int], target: Int) -> Int? {
var low = 0
var high = array.count - 1
while low <= high {
let mid = (low + high) / 2
if array[mid] == target {
return mid // Нашли
} else if array[mid] < target {
low = mid + 1 // Ищем в правой половине
} else {
high = mid - 1 // Ищем в левой половине
}
}
return nil // Не нашли
}