Студопедия — Билет №41
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Билет №41






Документирование программ в процессе разработки. Состав документации.

Документирование программы:

Правильно построенный процесс разработки программ позволяет получать документацию параллельно, так что к окончанию отладки получается почти вся необходимая документация.

Документация на разработанную программу включает следующие части:

1. Постановка задачи (спецификация задачи: В спецификации различают две существенно разные ее части: функциональную и эксплуатационную спецификацию.

Функциональная спецификация описывает объекты, участвующие в задаче, входные и выходные данные, связь между ними, реакции на аномалии, разбиение задачи на подзадачи.

Эксплуатационная спецификация содержит требования к скорости работы программы и используемым ресурсам памяти, характеристиками ЭВМ, на которой программа должна работать, специальные требования к надежности и безопасности программы.

Очевидно, чем сложнее и больше решаемая задача, тем труднее составить исчерпывающие спецификации. Возможно, что некоторые тре­бования придется уточнить после следующих этапов - проектирования и кодирования);

2. Проект алгоритма и структур данных (на псевдокоде);

3. Текст программы на языке программирования;

4. Отладочные тесты и результаты их работы (по мере тестирования заносятся в документацию);

5. Доказательство корректности (если оно является необходи­мой фазой отладки);

6. Руководство пользователю программы (на естественном языке). Составляется как правило самом в конце, как итог, основываясь на уже полученной документации.

_____________________________________________________________________________________

Билет №42

Классификация алгоритмов внутренней сортировки.

Сравнительная оценка методов сортировки.

Внутренняя сортировка - ориентирована на сортировку массивов. Разделение на сложные (модифицированные) и простые связано с оценкой эффективности алгоритмов по двум основным параметрам: число сравнений ключей элементов и число перестановок элементов. Для простых методов сортировки эти параметры имеют порядок в среднем n2, а для сложных (модифицированных) - n*logn, где n-количество сортируемых ключей:

 

1) Простые методы:

 

1. Метод простого обмена - проверяются пары ключей, и если они не упорядочены, то элементы взаимно меняются местами.

Простая обменная сортировка ("метод пузырька") для массива a[1], a[2],..., a[n] работает следующим образом. Начиная с конца массива сравниваются два соседних элемента (a[n] и a[n-1]). Если выполняется условие a[n-1] > a[n], то значения элементов меняются местами. Процесс продолжается для a[n-1] и a[n-2] и т.д., пока не будет произведено сравнение a[2] и a[1]. Понятно, что после этого на месте a[1] окажется элемент массива с наименьшим значением. На втором шаге процесс повторяется, но последними сравниваются a[3] и a[2]. И так далее. На последнем шаге будут сравниваться только текущие значения a[n] и a[n-1]. Понятна аналогия с пузырьком, поскольку наименьшие элементы (самые "легкие") постепенно "всплывают" к верхней границе массива.

Шейкер-сортировка — разновидность пузырьковой сортировки. Отличается тем, что просмотры элементов выполняются один за другим в противоположных направлениях, при этом большие элементы стремятся к концу массива, а маленькие — к началу.

 

2. Метод простого выбора - происходит выбор элементов в порядке возрастания ключей. Сначала выбирается элемент с наименьшим ключом, затем выбирается элемент с наименьшим ключом из оставшихся и т. д. до тех пор, пока в неотсортированной последовательности не останется ни одного элемента. В результате в отсортированной последовательности элементы распологаются в том порядке, в котором они были выбраны.

В этом методах массив также делится на уже отсортированную часть A[1],..., A[k-1] и не отсортированную A[k],..., A[n]. Из не отсортированной части на каждом шаге извлекается минимальный элемент. Он будет максимальным элементом отсортированной части, так как все меньшие его элементы извлечены на предыдущих шагах, поэтому извлеченный элемент ставится в конец отсортированной части.

В начальный момент при k = 1 отсортированная часть будет пустой.

 

3. Метод простого включения - элементы неотсортированной последовательности рассматриваются по очереди, и каждый вставляется на соответствующее ему место в отсортированной последовательности.

При сортировке исходный массив разбивается на две части:

A[1], A[2],..., A[k-1] - отсортированную часть

A[k],...,A[n] - не отсортированную часть.

На k - м шаге элемент A[k] включается в отсортированную часть, на соответствующее место. При этом часть элементов, больших A[k], (если таковые есть) сдвигаются на одну позицию правее, чтобы освободить место для элемента A[k]. Прежде чем производить сдвиг элементов необходимо сохранить значение A[k] во временной переменной B.

Так как массив из одного элемента можно считать отсортированным, алгоритм начинается с k=2.

 

2) Сложные методы:

 

1. Сортировка Шелла (включение).

Метод построен на основе метода вставки с минимизацией промежуточных шагов. Сначала выполняется сортировка элементов, отстоящих друг от друга на три позиции. После этого сортируются элементы, отстоящие друг от друга на две позиции. Наконец выполняется сортировка смежных элементов.

 

2. Сортировка с разделением (быстрая сортировка).

"Быстрая сортировка", хоть и была разработана более 40 лет назад, является наиболее широко применяемым и одним их самых эффективных алгоритмов.

Метод основан на подходе "разделяй-и-властвуй". Общая схема такова:

1. из массива выбирается некоторый опорный элемент a[i],

2. запускается процедура разделения массива, которая перемещает все ключи, меньшие, либо равные a[i], влево от него, а все ключи, большие, либо равные a[i] - вправо,

3. теперь массив состоит из двух подмножеств, причем левое меньше, либо равно правого,

4. для обоих подмассивов: если в подмассиве более двух элементов, рекурсивно запускаем для него ту же процедуру.

В конце получится полностью отсортированная последовательность.

 

3. Сортировка Флойда (с помощью дерева).

_____________________________________________________________________________________







Дата добавления: 2015-03-11; просмотров: 508. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия