Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!1-25.doc
Скачиваний:
7
Добавлен:
28.10.2018
Размер:
2.62 Mб
Скачать

1.1. Внутренняя сортировка (сортировка массивов).

Сортировка – это упорядочение данных по некоторому признаку(ключу).

От внешней отличается тем, что необходим прямой доступ к элементам.

1.Прямое включение: Элементы мысленно делятся на уже упорядоченную последовательность a1,a2,…,ai-1 и неупорядоченную последовательность. При каждом шаге, начиная со второго, т.е. i=2 и увеличивая i каждый раз на единицу, из неупорядоченной последовательности извлекается i-й элемент и перекладывается в упорядоченную последовательность, при этом он вставляется на нужное место.

Алгоритм : Упорядочен элемент a1. В начале i-го шага упорядочена часть a1,a2,…,ai-1. В эту последовательность включаем на свое место элемент ai. Для этого сравниваем ai-1 c ai; если ai-1<= ai, то оставляем ai на месте, иначе меняем местами ai и ai-1. Выполняем такие сравнения до тех пор, пока не будет найден элемент ak<ai, либо не будет достигнута левая граница массива. Такой типичный случай повторяющегося процесса с двумя условиями окончания позволяет воспользоваться приемом “барьера” (sentinel). Здесь его легко применить, поставив барьер a0 со значением x. Это делается для того, чтобы не контролировать выход за левую границу массива; задаем фиктивно a0 на i-м месте: a0:=ai

2. Прямой выбор Этот прием основан на следующих двух принципах: выбирается элемент с наименьшим ключом; он меняется местами с первым элементом a1. Затем этот процесс повторяется с оставшимися n-1 элементами, n-2 элементами и т.д. до тех пор, пока не останется один самый большой элемент. Такой метод в некотором смысле противоположен прямому включению. При прямом включении на каждом шаге рассматриваются только один очередной элемент неупорядоченной последовательности и все элементы упорядоченной, среди которых отыскивается точка включения; при прямом выборе для поиска одного элемента с наименьшим ключом просматриваются все элементы исходной последовательности, и найденный помещается как очередной элемент в готовую последовательность.

3. Прямой обмен. Этот алгоритм основывается на сравнении и смене мест для пары соседних элементов и продолжении этого процесса до тех пор, пока не будут упорядочены все элементы. Мы повторяем проходы по массиву, сдвигая каждый раз наименьший элемент оставшейся последовательности к левому концу массива. Если рассматривать массивы как вертикальные, а не горизонтальные построения, то элементы можно интерпретировать как пузырьки в чане с водой, причем вес каждого соответствует его ключу. В этом случае при каждом проходе один пузырек как бы поднимается до уровня, соответствующего его весу. Такой метод известен под именем “пузырьковая сортировка”. На каждом шаге алгоритма массив просматривается от конца к началу. При этом просмотре осуществляется попарное сравнение соседних элементов и их перестановка, если надо. Затем изменяем индекс.

Этот алгоритма допускает улучшения. Очевидный прием улучшения этого алгоритма – запоминать, были или не были перестановки в процессе некоторого прохода. Если в последнем проходе перестановок не было, то алгоритм можно заканчивать. Это улучшение, однако, можно улучшить, если запоминать не только сам факт, что обмен имел место, но и положение (индекс) последнего обмена. Ясно, что все пары соседних элементов выше этого индекса k уже находятся в желаемом порядке. Поэтому просмотр можно заканчивать на этом индексе, а не идти до заранее определенного нижнего предела для i.

Однако здесь есть некоторая асимметрия: всплывает пузырек сразу, за один проход, а тонет очень медленно, за один проход на одну позицию. Например, массив 12 18 42 44 55 67 94 6 с помощью усовершенствованной “пузырьковой” сортировки можно упорядочить за один просмотр, а для сортировки массива 94 6 12 18 42 44 55 67 требуется 7 просмотров. Такая неестественная симметрия наводит на мысль о третьем улучшении : чередовать направление последовательных просмотров. Получающийся при этом алгоритм называют “шейкернойсортировкой (ShakerSort).

4. Быстрая сортировка

Самый лучший из известных в данный момент метод сортировки для массивов. Его изобретатель Ч. Хоар назвал метод быстрой сортировкой (QuickSort).

Алгоритм. Выберем наугад какой-либо элемент (назовем его x) и будем просматривать слева наш массив до тех пор, пока не обнаружим элемент ai>x, затем будем просматривать массив справа, пока не встретим aj<x. Теперь Поменяем местами эти два элемента и продолжим наш процесс просмотра и обмена , пока оба просмотра не встретятся где-то в середине массива. В результате массив окажется разбитым на левую часть, с ключами меньше (или равными) x, и правую – с ключами больше (или равными) x.

Наша цель – не только провести разделение на части исходного массива элементов, но и отсортировать его. Сортировку от разделения отделяет лишь небольшой шаг: нужно применить этот процесс к получившимся двум частям, затем к частям частей, и так до тех пор, пока каждая из частей не будет состоять из одного-единственного элемента.

1.2 Этапы проектирования автоматизированных информационных систем

Существует 2 технологии проектирования БД: -технология быстрой разработки приложений (RAD). -технология поддерживается программой (CASE). Проектирование БД-отображение модели предметной области на физическую БД.

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

Обследование предметной области ведется с помощью бесед заказчика:

а) беседа с руководителем(выясняется начальное представление о предметной области) и информационные потребности заказчика. Выяснить:  1. границы предметной области и ее расширения.

 2. перечень элементов предметной области.

 3. информация, нужная пользователю от каждого элемента.

 4. перечень пользователей.

 5. процесс передачи информации.

 6. кто отвечает за достоверность информации. 

 7. на каких аппаратных средствах.

 8. перспективы развития.

  В результате обследования ПО, создается техническое задание, в котором должны быть указаны основные характеристики ПО и требование к разрабатываемой системе. Техническое задание подписано лицом организации. Инфологическое проектирование. Создание модели предметной области. Основной элемент этой области есть - диаграмма сущность и связь.