Documente Academic
Documente Profesional
Documente Cultură
După cum s-a stabilit anterior aceste metode sunt realizate numai în cazul cînd volumul memoriei interne permite de
a repartiza pe deplin fişierul iniţial predestinat pentru a fi sortat. Însăşi sortarea solicită şi utilizarea altui dispozitiv al
calculatorului – procesorului. La nivel fizic sortarea se reduce schematic la următoarele:
1. Înainte de a fi sortat fişierul iniţial se transcrie pe deplin din memoria externă în cea internă.
2. Din memoria internă se transcriu în procesor valorile cheilor a două înregistrări ce se contrapun.
3. În depindere de rezultatul acestei contrapuneri, una din înregistrări va fi transcrisă din procesor în memoria internă.
4. Din nou se transcrie o altă înregistrare din memoria internă în procesor, cheia ei se compară cu cheia înregistrării ce
se găseşte în procesor. În dependenţă de rezultatul acestei comparări una din înregistrări se va transcrie din procesor
în memoria internă ş.a.m.d. până sortarea deplină a fişierului iniţial.
5. Fişierul sortat în continuare poate fi supus prelucrării de calcul ori scos la imprimantă (afişat la monitor), ori
înregistrat în memoria externă.
În dependenţă de solicitarea anumitei rezerve de spaţiu al memoriei interne se evidenţiază două grupe de metode de
sortare internă:
– metode ce nu solicită spaţiul de memorie suplimentar;
– metode ce solicită acest spaţiu;
De menţionat faptul că numărul metodelor de sortare este considerabil (câteva sute) însă printre metodele de sortare
internă ce nu necesită spaţiu suplimentar de memorie cele mai frecvent aplicate sunt următoarele trei:
A. Metoda de inserţie, constă în aceea că fiecare cheie se compară cu cheia vecină şi în dependenţă de
rezultatul acestei comparări înregistrările se schimbă sau nu cu locurile lor. Acest proces de realizare până la
obţinerea fişierului sortat. De regulă numărul paşilor de sortare se egalează cu numărul înregistrărilor în fişierul
sortat.
B. Metoda Shell se consideră cea mai eficientă deoarece în afară de aceea că nu solicită memorie
suplimentară contribuie la cea mai rapidă sortare a înregistrărilor. În principiu esenţa metodei constă în aceea că
fişierul iniţial se divizează în grupe de înregistrări cu unu şi acelaşi număr de înregistrări, după ce aceste
înregistrări se sortează prin metoda insertivă. Cu fiecare pas numărul grupelor de înregistrări sortate se reduce iar
lungimea lor se măreşte.
C. Metoda bulelor – este cea mai simplă, însă şi cea mai neeficientă, deoarece necesită multe etape şi
comparări. Esenţa ei se reduce la aceea că valorile cheilor la prima etapă se vor compara până atunci când pe
primul loc nu va fi scoasă înregistrarea cu cea mai mică valoare a cheii. În continuare acelaşi lucru se va produce
şi cu următoarea înregistrare şi aşa până nu va fi sortat şirul iniţial pe deplin.
În grupa de metode de sortare internă ce necesită memoriei suplimentară frecvent sunt aplicate următoarele două
metode:
D. Metoda sortării prin interclasare (contopire) constă în aceea că fişierul iniţial la primul pas se
divizează în subgrupe, fiecare din ele constând din două chei. Prin compararea valorilor ei ele se schimbă sau nu
cu locul. La pasul doi aceste subgrupe se unesc în alte subgrupe ce constau din 4 chei. De asemenea ele se
compară şi se schimbă cu locul. La pasul trei se formează subgrupa din 8 chei şi aşa mai departe până nu va fi
format tot fişierul sortat.
E. Metoda de sortare prin selecţia în carou. Spre deosebire de celelalte metode necesită utilizarea nu a
două ci a trei zone de sortare:
- spaţiul pentru fişierul iniţial
- domeniul pentru fişierul sortat
- domeniul pentru acumularea înregistrărilor sortate.
PROBLEMĂ – MODEL
Este dată următoare succesiune de valori a cheilor înregistrărilor (n = 9):
A=6, 8, 2, 4, 10, 25, 3, 5, 15}
E necesar de sortat această succesiune de valori a cheilor pin metodele:
a) Metoda de inserare;
b) Metoda Shell;
c) Metoda bulelor;
d) Medoda de interclasare;
e) Metoda de selecţie în carou.
REZOLVARE:
A. Metoda de inserare:
Succesiunea
nesortată 6 8 2 4 10 25 3 5 15
I 6 8 2 4 10 25 3 5 15
II 6 8 2 4 10 25 3 5 15
III 2 6 8 4 10 25 3 5 15
IV 2 4 6 8 10 25 3 5 15
V 2 4 6 8 10 25 3 5 15
VI 2 4 6 8 10 25 3 5 15
VII 2 3 4 6 8 10 25 5 15
VIII 2 3 4 5 6 8 10 25 15
Succesiunea
2 3 4 5 6 8 10 15 25 sortată
B. Metoda Shell:
Succesiunea
nesortată 6 8 2 4 10 25 3 5 15
Deoarece succesiunea este cu număr impar de elemente, aplicăm următoarea formulă de determinare a numărului de
grupe de elemente:
n 1 8
d1 4
2 2
I 6 8 2 4 10 25 3 5 15
I
II
III
IV
C) Metoda bulelor:
Succesiunea
nesortată 6 8 2 4 10 25 3 5 15
I 2 8 6 4 10 25 3 5 15
II 2 6 8 4 10 25 3 5 15
2 4 8 6 10 25 3 5 15
2 3 8 6 10 25 3 5 15
III 2 3 6 8 10 25 4 5 15
2 3 4 8 10 25 6 5 15
IV 2 3 4 6 10 25 8 5 15
2 3 4 5 10 25 8 6 15
V 2 3 4 5 6 25 8 10 15
VI 2 3 4 5 6 8 25 10 15
VII 2 3 4 5 6 8 10 25 15
Succesiunea
VIII 2 3 4 5 6 8 10 15 25 sortată
D) Metoda de interclasare:
Pasul I Pasul II Pasul III Pasul IV
Succesiunea
nesortată 6 6
2
8 8
4 2 2
2 2 6 3 3
4 4 8 4 4
5 5
10 10
3 6 6
25 25
5 8 8
3 3 10 10 10
5 5 25 25 15
Succesiunea
25 sortată
15 15 15 15
3 3 5 5 15 15 15 15
4 – – – – – – – –
10 10 10 10 – – – – –
26 26 26 26 26 26 26 26 –
3 – – – – – – – –
5 5 5 5 – – – – –
15 15 15 15 15 – – – –
SARCINĂ
Metode de sortare internă
Problema № 1
Este dată următoarea succesiune de elemente (n=20):
A=16, 18, 22, 14, 21, 36, 12, 15, 21, 12, 13, 18, 14, 23, 37, 54, 93, 26, 17, 25}
E necesar:
1. de sortat succesiunea dată de elemente în ordine crescîndă prin metodele:
a) insertivă,
b) Şell,
c) «bulelor»
d) interclasare
e) selecţie în carou;
2. de determinat numărul paşilor, valoarea pasului d sortare la fiecare etapă, de calculat numărul de comparări şi
schimbări la fiecare pas de sortare, precum şi numărul grupelor ordonate (sortate).
Rezultatele calculelor se înscriu în tabelul de următoarea formă:
Metoda de Numărul de Numărul de Numărul de Rezervă de
sortare etape de sortare comparări schimburi memorie
Insertivă
Şell
Bulelor
Interclasare
Selecţie în
carou
De determinat cea mai eficienta metodă în baza valorilor acestor parametri.
Problema № 2
Este dată următoarea succesiune de elemente (n=12):
A=25, 26, 23, 28, 31, 27, 29, 23, 25, 38, 45, 19}
E necesar:
De efectuat aceeaşi ce şi în problema 1.
Problema № 3
Este dată următoarea succesiune de elemente (n=11):
A=17, 7, 3, 8, 10, 21, 1, 23, 15, 4, 18}
E necesar:
De efectuat aceeaşi ce şi în problema 1.
Problema № 4
Este dată următoarea succesiune de elemente (n=14):
A=81, 1, 96, 44, 53, 34, 48, 56, 7, 83, 3, 15, 11, 90}
E necesar:
De efectuat aceeaşi ce şi în problema 1.
Problema № 5
Este dată următoarea succesiune de elemente (n=10):
A=41, 14, 4, 1, 83, 38, 8, 13, 95, 5}
E necesar:
De efectuat aceeaşi ce şi în problema 1.
Problema № 6
Este dată următoarea succesiune de elemente (n=17):
A=18, 3, 4, 19, 2, 10, 23, 32, 91, 17, 71, 76, 6, 18, 2, 19, 1}
E necesar:
De efectuat aceeaşi ce şi în problema 1.
Problema № 7
Este dată următoarea succesiune de elemente (n=13):
A=31, 28, 45, 57, 7, 83, 96, 11, 25, 6, 10, 26}
E necesar:
De efectuat aceeaşi ce şi în problema 1.