Декабрь, 2009

Задачи на сортировку

Алгоритм сортировки — это алгоритм для упорядочения элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. На практике в качестве ключа часто выступает число, а в остальных полях хранятся какие-либо данные, никак не влияющие на работу алгоритма.

Алгоритмы сортировки оцениваются по скорости выполнения и эффективности использования памяти.

Подсчет количества одинаковых соседей

Пусть L обозначает кольцевой двунаправленный список с заглавным звеном. Описать функцию или процедуру, которая подсчитывает количество элементов списка L, у которых равные соседи. Задача №13 (Двунаправленные списки). (см. "Сборник задач для начинающего программиста")

Ключевые слова: 
список, двунаправленный список, соседние элементы в списке

Сжатие простого списка

Построить список натуральных чисел длиной N. Сжать полученный список, убрав все четные числа. Задача №2 из раздела "Простые списки". (см. "Сборник задач для начинающего программиста")

Ключевые слова: 
список, определение четности, удаление элемента из списка

Алгоритм для нахождения самой дешевой системы дорог

Имеется N городов. Для каждой пары городов (I,J) можно построить дорогу, соединяющую эти два города и не заходящие в другие города. Стоимость такой дороги A(I,J). Вне городов дороги не пересекаются.
Написать алгоритм для нахождения самой дешевой системы дорог, позволяющей попасть из любого города в любой другой. Результаты задавать таблицей B[1:N,1:N], где B[I,J]=1 тогда и только тогда, когда дорогу, соединяющую города I и J, следует строить. Задача #17 (Графы).

Ключевые слова: 
алгоритм Дейкстры граф кратчайший путь

Добавление в список после максимального элемента минимальный.

Дан список из последовательности натуральных чисел. Добавить в список после максимального элемента минимальный.
Задача № 8 (Простые списки).(см. "Сборник задач для начинающего программиста")

Ключевые слова: 
список, сортировка списка, поиск максимального и минимального элемента

Замена элементов в списке

Описать процедуру или функцию, которая заменяет в списке L все вхождения Е1 на Е2. Задача № 12. Простые списки. (см. "Сборник задач для начинающего программиста")

Ключевые слова: 
однонаправленный список, замена элементов в списке

Проверка расположения элементов в двунаправленном списке

После игры в домино остался ряд камней. Используя дву¬направленный список, определить, правильно ли расположены камни домино.
Задача №12 Двунаправленные списки. (см. "Сборник задач для начинающего программиста")

Ключевые слова: 
домино, двунаправленный список

Поиск символа в строке

Составить процедуру, позволяющую определить позицию самого правого вхождения заданного символа в строку. Если строка не содержит символа результатом работы процедуры должна быть (-1).
Задача № 9 . Процедуры и функции. (см. "Сборник задач для начинающего программиста")

Ключевые слова: 
поиск по строке, цикл

Поиск Эйлерового цикла в ориентированном графе

В заданном графе необходимо определить, существует ли цикл, проходящий по каждому ребру графа ровно один раз. Задача № 13 на графы (см. "Сборник задач по графам").

Ключевые слова: 
граф, эйлеров цикл, ребра графа