Алгоритмы средней сложности

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

Раздел не закончен

Циклы

Программы

  1. Разложение числа на простые множители (математика)

Массивы

Программы

  1. Проверка того, является ли массив отсортированным (по возрастанию, убыванию или в любом порядке), вывод первого элемента, нарушающего порядок сортировки
  2. Анализ локальных максимумов, минимумов и экстремумов (использование барьерных элементов)
  3. Вставка в отсортированный массив нового элемента с сохранением упорядоченности элементов
  4. Сортировка с помощью индексного массива (с сохранением исходного порядка элементов в основном массиве)
  5. Анализ последовательностей одинаковых элементов в массиве (определение числа таких последовательностей, самой длинной последовательности, числа самых длинных последовательностей или числа последовательностей указанной длины и т.д.)
  6. Нахождение нескольких минимальных или максимальных элементов за один проход массива
  7. Нахождение количества максимальных/минимальных элементов, количества элементов, следующих за максимальными/минимальными и т.д., за один проход массива
  8. Инвертирование части массива
  9. Удаление из массива всех элементов, удовлетворяющих определенному условию
  10. Вставка в массив новых элементов перед/после элементов, удовлетворяющих определенному условию, дублирование таких элементов

Матрицы

Программы

  1. Удаление строки/столбца с заданным номером
  2. Вставка новой строки/столбца перед/после заданной строки/столбца (или дублирование строки/столбца)
  3. Нумерация диагоналей, параллельных главной/побочной, использование массива с характеристиками каждой диагонали (например, с суммой значений)
  4. Сортировка строк/столбцов по некоторому ключу, связанному со строками/столбцами
  5. Анализ элементов, соседних с данным элементом матрицы, в частности, нахождение локальных минимумов/максимумов (использование обрамляющих матрицу строк и столбцов для единообразной обработки)

Строки и символы

Программы

  1. Преобразование числа в строку и обратно, быстрый способ преобразование цифрового символа в соответствующее однозначное число и обратно
  2. Разные способы инвертирования строки
  3. Проверка того, что строка представляет собой запись целого числа; вещественного числа
  4. Нахождение последнего вхождения подстроки в строку (варианты, использующие различные стандартные функции)
  5. Удаление из строки определенных символов или вставка в строку символов перед/после требуемых (просмотр строки с конца)
  6. Разные способы удаления из строки лишних пробелов
  7. Разбиение строки на отдельные слова (в предположении, что слова разделяются пробелами, или при наличии набора разделителей)
  8. Изменение регистра букв в строке
  9. Удаление из начала/конца строки требуемого символа (с учетом того, что в результате строка может оказаться пустой)
  10. Распознавание в строке начальных и конечных символов слов, при условии, что в начале и конце строки могут находиться пробелы, а слова разделяются одним или несколькими пробелами или другими разделителями
  11. Проверка правильности расстановки скобок в строке (ситуация, когда используются только круглые скобки, и ситуация, когда имеется несколько видов скобок)

Ссылки