Обмінне сортування методом «бульбашки»



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

 

Блок-схема алгоритму:                                                              Текст програми:

 


                                                                                                         Begin

                                                                                                введення масиву

                                                                                                 SL : = N;

                                                                                                 repeat

                                                                                                  t : = 0;

                                                                                                   for j : = 1 to SL-1 do

                                                                                                             if a[j] > a[j+1] then

                                                                                                             begin

                                                         _                                              buf : = a[j+1];

                   +                                                                                  a[j+1] : = a[j];

                                                                                                            a[j] : = buf;

                                                                                         змінюємо місцями сусідні елементи

                                                                                                   t : = j;

                                                                                                  end;

номер впорядкованого рівня

                                                                                                      SL : = t;

                                                                                                Until t = 0;

                                                                              Вивід упорядкованого масиву

                                                                                     

Сортування за допомогою вибору

Сортування за допомогою вибору зводиться до наступного:

1) Знайти найменший (або найбільший) елемент. Запам'ятати його порядковий номер і поміняти місцями з першим елементом.

2) Знов продивитись елементи, починаючи, з другого до n і повторити вибір найменшого (найбільшого) елемента і, відповідно, змінити їх місцями, і т.д., поки не будуть впорядковані всі n елементів.

Блок-схема алгоритму:                                                              Текст програми:

 


                        

 

Begin

                                                                                          ввід масиву

                                                                                     for  i : =1 to n-1 do

                                                                                               begin

                                                                                          початкове значення min

                                                                                                  min : = a[i] ; 

                                                                                                  k : = i ;                                                                                                                                     for j : = i + 1 to n do                                                                                                                         if min > a[j] then

                                                                                                      begin  

                                                                                                      min : = a[j] ;

                                                                                                      k : = j ;

    +                               _                                                                end;

                                                                                                          a[k] : = a[i] ;

                                                                                                          a[i] : = min ;

                                                                                                          end ;    

                                                                                                       

                                                                             вивід впорядкованого масиву

                                                                                                 end.

                                                                 

 


Сортування злиттям

Злиття означує об'єднання двох або більше послідовностей (масивів) в одну впорядковану послідовність.

Розглянемо більш детально алгоритм двохшляхового злиття.

Дано два впорядкованих масиви xi , i=1, n, yj , j=1, m. Отримати масив Zk, k=1, n+m.

  1. Визначаємо найменший елемент xi і yj .
  2. Порівнюємо найменші елементи і обраний найменший елемент записуємо в Z, виключаючи його з відповідного масиву (наприклад xi ).
  3. Відшукуємо новий min у масиві xi і порівнюємо його зmin yj .
  4. Записуємо обраний min в Z і виключаємо його з відповідного масиву, і т.д. поки всі елементи xi й yj не будуть записані в Z.

Методи роботи з структурами «дерево»

 

Структура „дерево” є узагальненням лінійного списку. В списку кожен вузол має показник на другий вузол. В дереві, кожен вузол містить декілька показників на декілька вузлів. Якщо показника два (правий і лівий), таке дерево називається  бінарним. Один із показників може бути рівним  Nil. Якщо правий і лівий показник рівний Nil , такій вузол називається лист. Початкова точка дерева називається кореневим вузлом.

У кореневого вузла немає гілок які в нього входять, є тільки ті, що виходять з нього. Вершина, до якої виходить показник із другої вершини, називається  потомком цієї вершини. Вершина, із якої виходить показник до другої вершини,  називається  предком.

Приклад структури «дерево».

                               

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

                

Основні операції над елементами дерева :

       

1. Занесення елементів в дерево.

2. Видалення елементів з дерева.

3. Обхід дерева.

 

Приклад опису структури «дерево»:

 

type tree = ^elem ; { показник на елемент дерева }

   elem = record

              info : integer; { інформаційне поле елемента дерева }

              left : tree;   { адресне поле елемента дерева – показник на лівого потомка }

              right : tree; { адресне поле елемента дерева – показник на правого потомка }

   end;

var beg : tree ; { показник на кореневий елемент (вузол) дерева }

 

 

Далі розглянемо основні операції зі структурою «дерево».

 


Дата добавления: 2018-04-04; просмотров: 605; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!