- •Лабораторная № 1_3
- •Обработка последовательностей.
- •Разработать алгоритмы до 16 октября
- •Сложность а. Типовые задачи (надо уметь делать все)
- •Разработать программы до 16 .10 (не менее одной задачи) Сложность в
- •Разработать программы до 16 .10 (не менее одной задачи) Сложность с
- •Решение олимпиадных задач Сложность d
- •См. Папку Олимпиды
Лабораторная № 1_3
Обработка последовательностей.
Разработать алгоритмы до 16 октября
Использовать статические массивы, динамические массивы, функции с передачей параметров массивов. Решение одной из задач реализовать полностью с помощью функций, т.е. у функции main должны быть только вызовы функций для решения.
Лэнггсам Й., Огенстайн М., Тененбаум А. Структуры данных для персональных ЭВМ, М., Мир, 1989г., 567 стр.
Т. Кормен , Ч. Лейзерсон, Р. Ривест , Алгоритмы: построение и анализ. М.: МЦНМО, 199.–960 с.,
Д. Кнут. Искусство программирования для ЭВМ. Т 3. Сортировка и поиск. М., Мир, 1978г.
Альфред В. Ахо, Джон Э. Хопкрофт и др. Структуры данных и алгоритмы. М.: Изд. дом “Вильямс”,2000. – 384 с.
Алексей Калугин.
Программирование в теоремах и задачах
Сложность а. Типовые задачи (надо уметь делать все)
Дана последовательность A=(ai), i=1..n, n<=100, Найти любой наибольший элемент и его номер.
Дана последовательность A=(ai), i=1..n, n<=100, Найти номера всех наименьших элементов.
Дана последовательность A=(ai), i=1..n, n<=100. Поменять местами первый наибольший и последний наименьший.
Дана последовательность A=(ai), i=1..n, n<=100. Поменять порядок элементов на обратный.
Удалить из последовательности A=(ai), i=1..n , n<=100, все простые элементы.
Дана последовательность A=(ai), i=1..n, n<=100 , вставить после каждого четного числа его “перевертыш”, напр. 56 789 345 1234 ->56 65 789 345 1234 4321.
Упорядочить элементы последовательности A=(ai), i=1..n, по возрастанию(убыванию), используя обменные сортировки[1 стр. 433] «Метод пузырька»;
Упорядочить элементы последовательности A=(ai), i=1..n, по возрастанию (убыванию), используя метод подсчeта[1 стр. 433];
Упорядочить элементы последовательности A=(ai), i=1..n, по возрастанию, используя метод вставок.
(Двоичный поиск) Дана неубывающая последовательность X=(xi),i=1..n, n<=10, целых чисел и число А. Выяснить, содержится ли А в этой последовательности. (Количество действий порядка log n.)
Задана неубывающая последовательность A=(ai) , i=1..n, (n<=1000), положительных целых чисел. Найти наименьшее целое положительное число, не представимое в виде суммы нескольких элементов этого массива (каждый элемент массива может быть использован не более одного раза). Число действий порядка n.
Решение. Пусть известно, что числа, представимые в виде суммы элементов a[1],...,a[k], заполняют отрезок от 1 до некото- рого N. Если a[k+1] > N+1, то N+1 и будет минимальным числом, не представимым в виде суммы элементов массива a[1]..a[n]. Если же a[k+1] <= N+1, то числа, представимые в виде суммы элементов a[1]..a[k+1], заполняют отрезок от 1 до N+a[k+1].
(Задача о голландском флаге) В массиве стоят числа 0, 1 и 2. Переставить их в порядке возрастания, если единственной разрешенной операцией (помимо чтения) над массивом является перестановка двух элементов.
Дана последовательность A=(ai), i=1..n, n<=100 и число m. Для каждого участка из m стоящих рядом элементов (таких участков очевидно n-m+1) вычислить его сумму. Общее число действий порядка n.
Заданы два многозначных числа А и В, количество цифр которых не более 100. Найти сумму этих чисел.
Заданы два многозначных числа А и В, количество цифр которых не более 100. Найти произведение этих чисел.
Задана две целочисленные последовательности A=(ai), i=1..n, n<=100 и B=(bi), i=1..n, n<=100, элементы которых упорядочены по возрастанию. Объединить эти массивы так, чтобы результирующий массив остался упорядоченным.
*Получить всевозможные перестановки из N натуральных чисел, N<=10.