Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРСОВА РОБОТА12334455.doc
Скачиваний:
2
Добавлен:
27.08.2019
Размер:
197.12 Кб
Скачать

6. Опис процесу розв’язку задачі

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

В даній роботі розглянуто сортування двома способами, це сортування прямого включення або методом вибору та методом « Бульбашки ». Також в роботі проаналізовано базові дані методів сортування, на основі яких можна оцінити прийняття алгоритму для конкретних задач.

У багатьох прийняттях сортування часто бувають зручні прості алгоритми. По-перше, дуже часто програма сортування використовується лише один або невелику кількість разів. Після розв’язку задачі сортування для деякого набору даних приклад обробки таких даних виконує інші дії. Якщо елементарне сортування працює не повільніше інших частин прикладів – наприклад вводу чи виводу даних – то немає потреби шукати більш швидший метод. Якщо число сортуємих елементів не дуже велике ( не більше ніж декілька сотин ), можно скористатися простім методом сортування. По-друге елементарні методи завжди зручні для файлів з невеликим розміром. Сортування виконується легко і для файлів які вже майже відсортовані або містять велике число однакових ключей. У роботі видно що деякі методи особливо ефективні при сортуванні таких структурованих файлів.

7. Сортування методом прямого включення (вставки)

Цей метод звичайно використовують гравці в карти. Елементи ( карти ) умовно розділяються на готову послідовність а1, … , аi – 1 і вхідну послідовність

аi, …, аn . На кожному кроці, починаючи з i =2 і збільшуючи і на одиницю, беруть і-н елемент з вхідною послідовністю і передають в готову послідовність, вставивши його на потрібне місце.

Пример сортировки прямого включения

44 55 12 42 94 18 06 67

і = 2 44 55 12 42 94 18 06 67

і = 3 12 44 55 42 94 18 06 67

і = 4 12 42 44 55 94 18 06 67

і = 5 12 42 44 55 94 18 06 67

і = 6 12 18 42 44 55 94 06 67

і = 7 06 12 18 42 44 55 94 67

і = 8 06 12 18 42 44 55 67 94

Процес сортування включеннями показано на прикладі восьми чисел. Алгоритм сортування прямого включення має вигляд наступний:

for i=2, to n do

begin x:=a[i];

“ вставити х на потрібне місце аi … аi ”

end;

При пошуку потрібного місця зручно чередувати порівняння і переадресування, тобто як би «просіювати» х, порівняння його з черговим елементом аі , або вставляючи х, або переадресовуючи а1 праворуч і здвигаючи ліворуч. Отже бачимо, що «просіювання» може закінчитись при двух різних умовах:

  1. Знайден елемент а1 з ключем менший за ключ х.

  2. Достигнувши лівий кінець готової послідовності.

Цей приклад циклу з двома умовами закінчення дає змогу добре роздивитись прийом фіктивного елемента («бар’єра»). Його можна легко застосувати в цьому випадку, установивши бар’єр а0 . (Замітимо, що для цього потрібно розглядати діапазон індексів в описі а до 0, …, n.) Остаточний алгоритм представлен у вигляді програми:

Також цю процедуру можна записати у такому вигляді:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]