Sunteți pe pagina 1din 7

Lucrarea de laborator N 11

Arhitectura și design-ul algoritmilor sortării externe a


datelor
Indicaţii metodice
Metodele de sortare internă sunt aplicate în cazul când fişierele de date iniţiale
şi sortate se repartizează pe deplin în memoria internă. Din acest motiv e posibilă
adresarea la orice înregistrare în procesul de sortare. Însă fişierele de date economice
reale dispun de aşa volum informaţional care depăşeşte esenţial volumul memoriei
interne a calculatorului. De aceea în aceste cazuri se utilizează memoria externă. La
nivel conceptual sortarea externă se reduce la următoarele proceduri efectuate în
următoarea succesiune:
1. Fişierul de date se transcrie în anumite porţiuni din memoria externă în memoria
internă.
2. În memoria internă prin intermediul anumitor metode de sortare internă aceste
porţii se ordonează (sortează) cu implicarea procesorului.
3. După efectuarea sortării fiecărei grupe datele ordonate se transcriu din memoria
internă în cea externă.
4. Prin unirea (contopirea, concatenarea) acestor porţii ordonate într-o singură
totalitate de date sortate se formează un fişier unic sortat.
Una din cele mai răspândite metode de efectuare a sortării externe este sortarea
prin contopire, ori unire a datelor (sortare magazinală).
Procedura de contopire operează numai cu structuri succesive. De aceea pentru
a realiza sortarea prin contopire de regulă este utilizată memoria externă cu acces
succesiv. Drept exemplu de aşa memorie este dispozitivele cu access succesiv
organizate pe bandă magnetică. Aceasta însă nu înseamnă că şi alte dispozitive cu
acces aliator (pachetele de discuri, wincesterele) nu pot fi utilizate pentru a sorta
fişierul de date în regim de exploatare a benzilor magnetice. Din acest motiv mai
evidentă este descrierea şi studierea sortării externe pe baza benzilor magnetice.
Metoda de unire a fişierelor iniţiale în procesul de sortare se mai numeşte
echilibrată (balansată) din cauză că numărul de benzi magnetice trebuie să fie egal atât
la intrare, cât şi la ieşirea din memoria internă,. Contopirea fişierelor se mai numeşte şi
multifazică după numărul de benzi conectate la intrarea şi ieşirea din memoria externă.
De aceea, se evidenţiazăsortare echilibrată multifazică.
În depindere de volumul fişierului sortat se evidenţiază sortare unibobinală şi
multibobinală.
Pentru sortarea unibobinală e caracteristic faptul că fişierul sortat se înscrie pe
deplin pe o bobină de bandă magnetică. Sortarea multibobinală se finalizează cu
aceea că fişierul pe deplin sortat se repartizează pe mai multe bobine de bandă
magnetică.
Sortarea multibobinală se realizează prin intermediul a două metode:
1. Metoda contopirii multibobinale;
2. Metoda distribuirii multibobinale.
Esenţa primei metode se reduce la următoarele:
a) Mai întâi fiecare din datele ce se conţin pe fiecare bobină se sortează pe baza
uneia din metodele de sortare unibobinală.
b) În continuare datele sortate de pe fiecare bobină se unesc în succesiuni mai
lungi în mai multe bobine până când nu va fi formată o succesiune unică a
datelor sortate pe mai multe bobine. Numărul de astfel de succesiuni depinde de
numărul de succesiuni şi volumul lor (numărul de bobine) la intrarea în
memoria internă. Cu cât succesiunea este mai considerabilă la intrări cu atât mai
operativ se va efectua sortarea. Însă, în acest caz atât pentru sortarea
unibobinală, cât şi multibobinală spaţiul memoriei externe va fi utilizat
neeficient.
Sortarea prin metoda de distribuire multibobinală (a doua metodă) este inversă
metodei de contopire şi se reduce la efectuarea următoarele proceduri:
a) Mai întâi înregistrările fişierului iniţial se divizează în anumite subgrupe la care
este stabilit diapazonul valorilor cheilor (de ex: 1-100; 101-200 etc.)
b) În depindere de valoarea cheii fiecărei înregistrări datele se selectează şi se
acumulează în grupele cu diapazonul de valori a cheilor stabilit.
c) În continuare fiecare grupă de înregistrări în acelaşi mod se divizează în
subgrupe, care conţin un diapazon de valori al cheilor mai mic (de ex.: 1-50; 51-
100; 101-150 etc.). Această procedură se repetă până când nu se va obţine câte o
grupă de înregistrări ce se repartizează pe o bobină de bandă magnetică.
d) Apoi, fişierul de pe fiecare bobină se sortează prin intermediul unei metode de
sortare internă şi în aşa mod se obţine o totalitate de bobine de bandă magnetică
cu un fişier unic sortat.

Sortarea unibobinală
PROBLEMĂ – MODEL № 1
Este dată o totalitate de înregistrări organizată sub formă de fişier de date. În
acest fişier se conţin 7.000 de înregistrări.
E necesar de sortat acest fişier prin metoda unibobinală, deoarece el poate fi
înscris pe o singură bobină în rezultatul sortării.
Sortarea se produce în porţiuni. Fiecare porţiune conţine câte 1.000 înregistrări.
De aceea în memoria internă se organizează spaţiu memorial pentru a înscrie şi sorta
fiecare din aceste porţiuni. Acest spaţiu se numeşte magazin de sortare. Sortarea se va
produce rin metoda 4-fazică echilibrată.

REZOLVARE:

2
Faptul că sortarea este 4-fazică schilibrată înseamnă că atât la intrarea în
memoria internă (MI), cât şi la ieşire se dispune de 4 derulori de benzi magnetice.
Deoarece sortarea se produce în volum de 1.000 înregistrări, pe benzile
magnetice vor fi înscriese 7 porţiuni de înregistrări sortate. În primul rând pe toate cele
4 benzi vor fi înscrise primele 4 mii de înregistrări. În al doilea rând vor fi înscrise pe
primele 3 benzi următoarele 3 mii de înregistrări.
Reieşind din aceste condiţii, la primul ciclu de sortare se vor contopi într-o
succesiune primele 4 mii de înregistrări pe o bandă magnetică de ieşire, iar pe altă
bandă magentică se vor înscrie următoarele 3 mii de înregistrări. Schematic acest ciclu
se prezintă în următorul mod:

Ciclul I de contopire a datelor:


B1 1,5 1-4 B5
mag 1

B2 2,6 NC K
mag 2 3-7 B6

B3 3,7 B7
mag 3 nod

B4 4 de comu- B8
mag 4
conto- tator

mag de
ieşire

Ciclul II de contopire a datelor:

B5 1-4 1-7 B1
mag 1

B6 5-7 NC K B2
mag 2

B7 B3
nod

B8 de comu- B4
conto- tator

Sortarea multibobinală

3
PROBLEMĂ – MODEL № 2
Este dat un fişier de 1mln 100 mii de înregistrări. Fiecare din 100 mii de
înregistrări se repartizează pe deplin pe o bandă magentică. În aşa mod fişierul iniţial
necesită pentru a fi repartizat 11 bobine de benzi magnetice.
Pentru a afectua această sortare a fişierului se utilizează 4 derulori de benzi
magnetice: 3 la intrare şi 1 la ieşire.
E necesar de sortat acest fişier prin metoda multibobinală:
a) prin contopire;
b) prin distribuire.

REZOLVARE:
A. Sortarea multibobinală prin contopire
Reieşind din cndiţiile iniţiale sortarea multibobinală prin contopire va cuprinde
3 cicluri. Schema sortării este următoarea:
Ciclul I de contopire a datelor:
A B C

1 2 3 4 5 6 7 8 9 10 11
I II III I II III I II III

MI
NC
K

14 17 20
13 16 19
12 15 18

Ciclul II de contopire a datelor:

18 19 20 10 11
I II III

MI
NC
K

7 8 9 21 22
Ciclul III de contopire a datelor:

4
12 13 14 15 16 17 7 8 9 21 22
I II III

MI
NC
K

11 10 20 19 18 6 5 4 3 2 1

B. Sortarea multibobinală prin distribuire


Sortarea multibobinală prin distribuire este inversă metodei de contopire din
cauză că iniţial datele n-au fost sortate, de aceea ele mai întâi se acumulează pe fiecare
bandă magnetică în depindere de valorile cheilor înregistrărilor, iar după aceea ele
sunt sortate prin intermediul anumitei metode de sortare internă. Pentru sortarea prin
metoda de distribuire la intrere se comuteză un derulor, iar la ieşire 3. Reieşind din
aceste condiţii schema de sortare va fi următoarea:
1 – 1.000.000

1 2 3 4 5 6 7 8 9 10 11

1 – 500.000 500.001 – 800.000 800.001 – 1.100.000

12 13 14 15 16 17 18 19 20 21 22

1 – 300.000
1 2 3 4 5 6 7 8 9 10 11
300.001- 400.001- 500.000- 600.001- 700.001- 800.001- 900.001- 1.000.001-
400.000 500.000 600.000
700.000 800.000 900.000 1.000.000 1.100.000

12 13 14
1- 100.001- 200.001-
100.000
200.000 300.000

Complexul de probleme

5
Sortarea externă
Problema № 1
Fişierul iniţial, ce este supus sortării şi interclasării constă din 9000 de
înregistrări cu lungimea fixă. Pentru fiecare magazin de intrare cît şi de ieşire se alocă
memorie de un volum de 1000 de înregistrări.
E necesar:
a) de determinat numărul de etape (cicluri) de sortare la primul stadiu (stadiu de
pregătire) şi numărul ciclurilor de interclasare la al doilea stadiu;
b) de elaborat schemele de distribuire sortare şi înterclasare a fişierului iniţial în
cazurile interclasării 2-, 3- şi 4- fazică echilibrată.

Problema № 2
Colecţia de date, ce este supusă sortării, constă din 8 mii de înregistrări cu
lungimea fixată. Condiţiile sortării şi interclasării sînt aceleaşi, ce şi în problema 1.
E necesar de efectuat aceeaşi ce şi în problema 1.

Problema № 3
E necesar de efectuat sortarea şi interclasarea colecţiilor de date, ce constă din
10 mii de înregistrări în baza condiţiilor problemei 1

Problema № 4
E necesar de efectuat sortarea şi interclasarea colecţiilor de date, ce constă din
15 mii de înregistrări în baza condiţiilor problemei 1

Problema № 5
Colecţia de date iniţială ocupă 11 bobine de bandă magnetică.
E necesar:
a) prin intermediul unei metode de sortare unibobinală externă de ordonat (sortat)
datele de pe fiecare bobină de bandă magnetică;
b) prin intermediul metodei de unire multibobinală de interclasat datele de pe toate
bobinele şi de format o succesiune ordonată unsprezecebobinală de date;
c) de elaborat schemele realizării (efectuării) sortării externe unibobinale şi a
interclasării unsprezecebobinale;
d) de elaborat cîteva scheme de interclasare şi de selectat cea mai raţională din ele;
e) de calculat numărul etapelor şi ciclurilor de sortare şi unire a bobinelor de bandă
magnetică utilizate;
f) sortarea unibobinală se efectuează prin metoda unirii 3-fazice echilibrate.
Pentru contopirea unibobinală se utilizează 4 derulări de bandă magnetică: 3-la
intrare, 1-la ieşirea din memoria internă.

Problema № 6

6
E necesar de efectuat contopirea 10-bobinală a colecţiei de date iniţiale în baza
condiţiilor problemei 5.

Problema № 7
E necesar de efectuat contopirea 13-bobinală a colecţiei de date iniţiale în baza
condiţiilor problemei 5.

Problema № 8
Colecţia de date iniţială ocupă 10 volume de bandă magnetică. Diapazonul
valorilor cheilor înregistrărilor sortate este cuprins în limitele 1-1.000.000. Se
prognozează că totalitatea de înregistrări cu diapazonul valorilor cheilor de 200.000 pe
deplin se repartizează pe un volum de bandă magnetică.
E necesar:
a) de elaborat schema distribuirii colecţiei de înregistrări 10-bobinale;
b) după efectuarea ultimei etape de distribuire a datelor de îndeplinit sortarea
înregistrărilor pe fiecare volum de bandă magnetică prin metoda de interclasare
unibobinală, pentru ce de elaborat şi de descris schema respectivă. Sortarea
unibobinală se efectuează prin metoda de interclasare 4-fazică echilibrată;
c) de calculat numărul de etape şi cicluri de sortare şi de contopire a bobinelor de
bandă magnetică.

Problema № 9
E necesar de efectuat distribuirea multibobinală a colecţiei de date 10-bobinale
cu diapazonul valorilor cheilor de la 4001-8000, în baza condiţiilor problemei 8. Pe un
volum de memorie poate fi repartizată (înscrisă) o totalitate de înregistrări cu
diapazonul de 500 de valori a cheilor.

Problema № 10
E necesar de efectuat distribuirea multibobinală a colecţiei de date 13-bobinale
cu diapazonul valorilor cheilor de la 20001-46000, în baza condiţiilor problemei 8. Pe
un volum de memorie poate fi repartizată (înscrisă) o totalitate de înregistrări cu
diapazonul de 2000 de valori a cheilor.

S-ar putea să vă placă și