Повторение — оптимизированные циклы
Часть раздела Логика и управление потоком путешествия по C# на Coddy. Урок 17 из 66.
Задание
СреднеВам поручено оптимизировать алгоритм поиска, который обрабатывает большой набор данных. Создайте метод с именем OptimizeSearchAlgorithm, который:
- Принимает рваныый массив целых чисел (
int[][]) и целевое значение в качестве параметров - Реализует четыре различных подхода для поиска целевого значения:
- Используя традиционный цикл for без кэширования длин массивов
- Используя цикл for с кэшированием длин массивов
- Используя цикл foreach с счетчиком
- Используя вспомогательный метод для проверки совпадения значения с целью
- Возвращает общее количество найденных совпадений с использованием оптимизированного подхода (с кэшированием длин)
Метод должен демонстрировать все техники улучшения циклов, рассмотренные в этой главе.
Попробуйте сами
public class OptimizeSearchAlgorithm
{
public static int optimizeSearchAlgorithm(int[][] data, int target)
{
// Напишите ваше решение здесь
}
// Добавьте любые вспомогательные методы, которые вам нужны
}Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовОбъявление и инициализация 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиЗубчатые массивыОсновные операции с матрицамиПовторение — многомерные массивы4Методы управления потоком выполнения
Досрочный выходЗащитные условияОператоры перехода (goto)Break и ContinueУпрощение вложенных условных конструкций7Логические операторы: продвинутый уровень
Вычисление с коротким замыканиемУсловные логические операторыПриоритет операторовПовторение — продвинутые операторы2Продвинутое принятие решений
Множественные условияСложная логика BooleanСравнение If и SwitchВложенные конструкции SwitchПовторение — продвинутые решения5Обработка исключений
Основы Try-CatchТипы исключенийНесколько блоков CatchРабота с файламиБлок FinallyИспользование Using вместо Try-FinallyПользовательские исключенияПовторение — обработка ошибок3Улучшение циклов
Производительность цикловИтерация по сложным структурамКаждый тип циклаРефакторинг цикловПовторение — оптимизированные циклы6Обработка null
Основы ссылок на nullТипы значений, допускающие nullШаблоны проверки на nullЗащитное программированиеПовторение — безопасность при работе с nullПотренируйтесь самостоятельно: Онлайн-компилятор C#