Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 курс лаб 1_3.doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
57.34 Кб
Скачать

Лабораторная № 1_3

Обработка последовательностей.

Разработать алгоритмы до 16 октября

Использовать статические массивы, динамические массивы, функции с передачей параметров массивов. Решение одной из задач реализовать полностью с помощью функций, т.е. у функции main должны быть только вызовы функций для решения.

  1. Лэнггсам Й., Огенстайн М., Тененбаум А. Структуры данных для персональных ЭВМ, М., Мир, 1989г., 567 стр.

  2. Т. Кормен , Ч. Лейзерсон, Р. Ривест , Алгоритмы: построение и анализ. М.: МЦНМО, 199.–960 с.,

  3. Д. Кнут. Искусство программирования для ЭВМ. Т 3. Сортировка и поиск. М., Мир, 1978г.

  4. Альфред В. Ахо, Джон Э. Хопкрофт и др. Структуры данных и алгоритмы. М.: Изд. дом “Вильямс”,2000. – 384 с.

Алексей Калугин.

  1. Программирование в теоремах и задачах

Сложность а. Типовые задачи (надо уметь делать все)

  1. Дана последовательность A=(ai), i=1..n, n<=100, Найти любой наибольший элемент и его номер.

  2. Дана последовательность A=(ai), i=1..n, n<=100, Найти номера всех наименьших элементов.

  3. Дана последовательность A=(ai), i=1..n, n<=100. Поменять местами первый наибольший и последний наименьший.

  4. Дана последовательность A=(ai), i=1..n, n<=100. Поменять порядок элементов на обратный.

  5. Удалить из последовательности A=(ai), i=1..n , n<=100, все простые элементы.

  6. Дана последовательность A=(ai), i=1..n, n<=100 , вставить после каждого четного числа его “перевертыш”, напр. 56 789 345 1234 ->56 65 789 345 1234 4321.

  7. Упорядочить элементы последовательности A=(ai), i=1..n, по возрастанию(убыванию), используя обменные сортировки[1 стр. 433] «Метод пузырька»;

  8. Упорядочить элементы последовательности A=(ai), i=1..n, по возрастанию (убыванию), используя метод подсчeта[1 стр. 433];

  9. Упорядочить элементы последовательности A=(ai), i=1..n, по возрастанию, используя метод вставок.

  10. (Двоичный поиск) Дана неубывающая последовательность X=(xi),i=1..n, n<=10, целых чисел и число А. Выяснить, содержится ли А в этой последовательности. (Количество действий порядка log n.)

  11. Задана неубывающая последовательность 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].

  1. (Задача о голландском флаге) В массиве стоят числа 0, 1 и 2. Переставить их в порядке возрастания, если единственной разрешенной операцией (помимо чтения) над массивом является перестановка двух элементов.

  2. Дана последовательность A=(ai), i=1..n, n<=100 и число m. Для каждого участка из m стоящих рядом элементов (таких участков очевидно n-m+1) вычислить его сумму. Общее число действий порядка n.

  3. Заданы два многозначных числа А и В, количество цифр которых не более 100. Найти сумму этих чисел.

  4. Заданы два многозначных числа А и В, количество цифр которых не более 100. Найти произведение этих чисел.

  5. Задана две целочисленные последовательности A=(ai), i=1..n, n<=100 и B=(bi), i=1..n, n<=100, элементы которых упорядочены по возрастанию. Объединить эти массивы так, чтобы результирующий массив остался упорядоченным.

  6. *Получить всевозможные перестановки из N натуральных чисел, N<=10.