Ответ
Да, читал. "Грокаем алгоритмы" (Aditya Bhargava) — отличное вводное руководство, которое объясняет базовые алгоритмы и структуры данных через визуализацию и простые примеры.
Охватываемые темы:
- Бинарный поиск.
- Основные алгоритмы сортировки (быстрая сортировка, сортировка выбором).
- Поиск в ширину (BFS) и алгоритм Дейкстры для графов.
- Динамическое программирование и жадные алгоритмы.
Пример реализации бинарного поиска на Java (по мотивам книги):
public class BinarySearch {
public static int search(int[] sortedArray, int target) {
int low = 0;
int high = sortedArray.length - 1;
while (low <= high) {
int mid = low + (high - low) / 2; // Предотвращение переполнения
if (sortedArray[mid] == target) {
return mid; // Элемент найден
} else if (sortedArray[mid] < target) {
low = mid + 1; // Искать в правой половине
} else {
high = mid - 1; // Искать в левой половине
}
}
return -1; // Элемент не найден
}
}
Книга служит прочным фундаментом, но для сложных технических интервью или углубленного изучения требуется обращение к более академическим источникам, таким как "Алгоритмы: построение и анализ" (Кормен и др.).