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

Материал из Вики проекта 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. Проверка правильности расстановки скобок в строке (ситуация, когда используются только круглые скобки, и ситуация, когда имеется несколько видов скобок)

Ссылки

Персональные инструменты