
- •Упорядкування вставлянням
- •Упорядкування вибором
- •Упорядкування обміном
- •Порівняння прямих методів упорядкування
- •Бінарний пошук
- •Приклади розв'язування задач
- •Розв’язування.
- •Заповнити тривимірний масив цілих чисел за правилом: елементи на гранях рівні 1, всі інші 0 (за схематичним поданням).
- •Розв’язування.
Упорядкування вибором
Принцип методу:
Знаходимо найменший елемент масиву на інтервалі від 1–го елемента до n-го (останнього) елемента і переставляємо його місцями з першим елементом. На другому кроці знаходимо найменший елемент масиву на інтервалі від 2-го до n-го елемента і переставляємо його місцями з другим елементом. І так далі для всіх елементів до n–1–го.
Застосуємо метод вибором для упорядкування масиву 4 0 7 5 1 3 :
|
1 |
2 |
3 |
4 |
5 |
6 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
||||||||
1: |
4 |
0 |
7 |
5 |
1 |
3 |
|
4: |
0 |
1 |
3 |
5 |
4 |
7 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
min |
|
|
|
|
|
|
|
|
|
min |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
||||||||
2: |
0 |
4 |
7 |
5 |
1 |
3 |
|
5: |
0 |
1 |
3 |
4 |
5 |
7 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
min |
|
|
|
|
|
|
min |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
|
6: |
1 |
2 |
3 |
4 |
5 |
6 |
||||||||
3: |
0 |
1 |
7 |
5 |
4 |
3 |
|
Результат |
0 |
1 |
3 |
4 |
5 |
7 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
min |
|
|
|
|
|
|
|
|
Отже,
const MaxN = 20; type TElement = Real; TMas = array[1..MaxN] of TElement; var A : TMas; N, Nmin, i, j : Integer; T :TElement; begin Write('Введіть кількість елементів масиву – '); ReadLn(N); for i := 1 to N do begin Write('A[', i, ']='); ReadLn(A[i]); end; WriteLn('Масив до упорядкування:'); for i := 1 to N do Write(A[i], ' '); WriteLn; for i := 1 to n–1 do begin Nmin := i; for j := i+1 to n do if A[Nmin] > A[j] then Nmin := j; T := A[Nmin]; A[Nmin] := A[i]; A[i] := T; end; WriteLn('Упорядкуваний масив:'); for i := 1 to N do Write(A[i], ' '); WriteLn; ReadLn; end. |