- •Лекція №8-9
- •Перерахований тип даних
- •Діапазонний тип
- •Особливості роботи з користувацькими простими типами
- •Регулярний тип даних (масиви)
- •Порядок роботи з масивом:
- •Одновимірні масиви Опис одновимірних масивів
- •Двовимірні масиви
- •Сортування одновимірних масивів
- •Використання одновимірних масивів
- •Одновимірні масиви, що складаються з констант
- •Сортування вставкою (включенням).
- •Сортування вибором (виділенням).
- •Сортування обміном (метод «бульбашки»).
- •Сортування підрахунком.
Сортування вибором (виділенням).
Принцип методу Перший елемент порівнюється зі всіма іншими, які розташовані праворуч від нього. Якщо якийсь елемент за значенням менший, ніж перший, то вони міняються місцями. Після першого проходу масиву, виконують другий прохід, починаючи перегляд з другого елементу та повторюючи попередні дії. Необхідно виконати (n-1) перегляд таблиці.
Приклад сортування:
|
program vubir; |
|
|
uses crt; |
|
|
var n, i, j: integer; x: real; |
|
|
a: array [1..255] of real; |
|
|
begin |
|
|
clrscr; randomize; |
|
|
write ('Vvedit rozmirnist masuvy: '); |
|
|
readln (n); |
|
|
for i:=1 to n do |
|
|
a[i]:=(random(100)-50)/5; |
Заповнення масиву випадковими числами |
|
writeln ('Pochatkovuj masuv:'); |
|
|
for i:=1 to n do write (a[i]:6:1); |
виведення заповненого масиву на екран |
|
for i:=1 to n-1 do |
початок перебору всіх елементів масиву |
|
for j:=i+1 to n do |
розгляд всіх елементів після i-того |
|
if a[j]<a[i] |
порівняння поточного елементу з усіма наступними |
|
then begin |
|
|
x:=a[i]; |
обмін місцями поточного елемента з найменшим, що розташований після нього |
|
a[i]:=a[j]; |
|
|
a[j]:=x |
|
|
end; |
|
|
writeln; writeln; |
|
|
writeln ('Vidsortirovanuj masuv:'); |
|
|
for i:=1 to n do write (a[i]:6:1); |
виведення відсортованого масиву |
|
readln |
|
|
end. |
|
Сортування обміном (метод «бульбашки»).
Принцип методу: Перегляд масиву здійснюється від кінця до початку. Якщо два сусідніх елемента не розташовані у порядку зростання, то вони міняються місцями. За один перегляд спливає одна «бульбашка». Необхідно виконати (n-1) перегляд таблиці.
Приклад сортування:
|
program bylbashka; |
|
|
uses crt; |
|
|
var n, i, j, x: integer; |
|
|
A: array [1..255] of integer; |
|
|
begin |
|
|
clrscr; randomize; |
|
|
write ('Vvedit rozmirnist masuvy: '); |
|
|
readln (n); |
|
|
for i:=1 to n do |
Заповнення масиву випадковими числами |
|
a[i]:=(random(50)-25); |
|
|
writeln ('Pochatkovuj masuv:'); |
|
|
for i:=1 to n do write (a[i],' '); |
виведення заповненого масиву на екран |
|
for i:=1 to n-1 do |
перебір всіх елементів масиву до передостаннього |
|
for j:=n downto i+1 do |
перебір елементів з кінця до поточного |
|
if a[j]<a[j-1] |
порівняння з попереднім |
|
then begin |
|
|
x:=a[j]; |
обмін елементів місцями, якщо вони відповідають заданій умові – витіснення найбільшого (найменшого) елемента. |
|
a[j]:=a[j-1]; |
|
|
a[j-1]:=x |
|
|
end; |
|
|
writeln; writeln; |
|
|
writeln ('Vidsortirovanuj masuv:'); |
|
|
for i:=1 to n do write (a[i], ' '); |
виведення відсортованого масиву |
|
readln |
|
|
end. |
|
