Kompjuters, Ipprogrammar
Tekniki fl-ipprogrammar issortjar: issortjar "bużżieqa"
bużżieqa tip mhix biss meqjusa bħala l-aktar metodu mgħaġġel, barra minn hekk, li jagħlaq il-lista tal-modi iżgħar rata biex jorganizzaw. Madankollu, hija għandha l-vantaġġi tagħha. Għalhekk, il-metodu ta 'għażla bużżieqa - l-aktar li la hija soluzzjoni naturali u loġiku li l-problema, jekk inti tixtieq li tirranġa l-oġġetti f'ordni partikolari. Persuna ordinarja manwalment, per eżempju, se jużawhom - biss billi intuwizzjoni.
Fejn għamlet tali isem tas-soltu?
isem Metodu ħarāu, bl-użu l-analoġija tal-bżieżaq tal-arja fl-ilma. Huwa metafora. Hekk kif ftit bżieżaq jitilgħu 'l fuq - minħabba d-densità tagħhom hija akbar minn fluwidu (f'dan il-każ - l-ilma), u kull element array, l-iżgħar huwa l-valur, il-mod aktar gradwali għall-quċċata tal-numri lista.
Deskrizzjoni tal-algoritmu
bużżieqa tip hija mwettqa kif ġej:
- ewwel pass: l-elementi tan-numri firxa tittieħed miż-żewġ pari u wkoll mqabbla. Jekk xi elementi tad-żewġ bniedem ewwel valur tim huwa akbar mit-tieni, il-programm jagħmilhom postijiet kambju;
- konsegwentement, l-akbar numru ta ' jonqsilha l-aħħar tal-firxa. Filwaqt li l-elementi kollha l-oħra jibqgħu kif kienu, b'mod kaotika, u jeħtieġu aktar għażla;
- u għalhekk jeħtieġu t-tieni pass: huwa magħmul b'analoġija mal-preċedenti (diġà deskritt) u għandu numru ta 'paraguni - nieqes wieħed;
- fuq in-numru passaġġ tliet paraguni, wieħed inqas mit-tieni, u l-żewġ, mill-ewwel. U hekk;
- tqassar li kull passaġġ għandu (valuri kollha fil-firxa, in-numru partikolari) nieqes (numru passaġġ) paraguni.
algoritmu anki iqsar ta 'programm jista' jinkiteb bħala:
- firxa ta 'numri huwa kkontrollat sakemm kwalunkwe żewġ numri jinstabu, it-tieni wieħed minnhom huwa marbut li jkun ikbar mill-ewwel;
- posizzjonata b'mod żbaljat fir-rigward ta 'kull elementi oħra tal-iswaps softwer firxa.
Pseudocode bbażata fuq l-algoritmu deskritta
L-implimentazzjoni sempliċi isir kif ġej:
proċedura Sortirovka_Puzirkom;
bidu
ċiklu għal j mill nachalnii_index sa konechii_index;
ċiklu għal i minn nachalnii_index għal konechii_index-1;
jekk Massiv [f]> Massiv [i + 1] (l-ewwel element akbar minn sekonda), allura:
(Bidla postijiet valuri);
aħħar
Naturalment, dan sempliċità taggrava biss is-sitwazzjoni: il-sempliċi l-algoritmu, l-aktar li timmanifesta l-difetti. proporzjon investiment ta 'ħin hija kbira wisq anki għal firxa żgħira (hawnhekk jidħol fl-relatività: L-ammont ta' ħin għall-layman jista 'jidher żgħir, iżda fil-fatt programmer kull sekonda jew saħansitra millisekonda għadd).
Hija ħadet l-implimentazzjoni aħjar. Per eżempju, filwaqt li jitqies l-iskambju ta 'valuri f'postijiet firxa:
proċedura Sortirovka_Puzirkom;
bidu
sortirovka = vera;
ċiklu sakemm sortirovka = vera;
sortirovka = foloz;
ċiklu għal i minn nachalnii_index għal konechii_index-1;
jekk Massiv [f]> Massiv [i + 1] (l-ewwel element akbar minn sekonda), allura:
(Bidla elementi postijiet);
sortirovka = vera; (Identifikat li l-iskambju sar).
Tmiem.
limitazzjonijiet
L-iżvantaġġ prinċipali - it-tul tal-proċess. Kif ħafna ħin hija mwettqa issortjar algoritmu bużżieqa?
Lead time huwa kkalkolat mill-numru ta 'numri kwadri fil-firxa - ir-riżultat aħħari ta' dan huwa proporzjonali.
Jekk l-agħar każ il-firxa jiġi mgħoddi kemm drabi hija għandha elementi nieqes valur wieħed. Dan jiġri għaliex fl-aħħar hemm biss element wieħed, li ma għandhom xejn biex iqabblu, u l-aħħar pass permezz tal-firxa isir azzjoni inutli.
Barra minn hekk, metodu effettiv ta issortjar skambju sempliċi, kif huwa msejjaħ, biss għall matriċi ta 'daqs żgħir. ammonti kbar ta 'data bl-għajnuna ta' proċess mhux se taħdem: ir-riżultat se jkun jew żball jew nuqqas tal-programm.
dinjità
bużżieqa tip huwa faċli ħafna li tifhem. Il-kurrikuli ta 'universitajiet tekniċi fl-istudju tal-elementi tordna tal-firxa tagħha jgħaddu fl-ewwel post. Il-metodu huwa faċli biex jiġi implimentat kemm il-lingwa Delphi programmar (L (Delphi), u l-C / C ++ (C / C plus plus), ta 'valuri oerhört sempliċi ta' algoritmu post fl-ordni dritt u fil- Pascal (Pascal). Tip Bubble hija ideali għall jibdew.
Minħabba l-iżvantaġġi ta 'l-algoritmu ma tintużax għal għanijiet extra-kurrikulari.
prinċipju issortjar viżwali
L-opinjoni inizjali tal-firxa 8 22 4 74 44 37 1 7
Pass 1 8 22 4 74 44 37 1 7
8 22 4 74 44 1 37 7
8 22 4 74 1 44 37 7
8 22 4 1 74 44 37 7
8 22 1 4 74 44 37 7
8 1 22 4 74 44 37 7
1 8 22 4 74 44 37 7
Stadju 2 1 8 22 4 74 44 7 37
1 8 22 4 74 7 44 37
1 8 22 4 7 74 44 37
1 8 22 4 7 74 44 37
1 8 4 22 7 74 44 37
1 4 8 22 7 74 44 37
Stadju 3 1 4 8 22 7 74 37 44
1 4 8 22 7 37 74 44
1 4 8 22 7 37 74 44
1 4 8 7 22 37 74 44
1 4 7 8 22 37 74 44
Pass 4 1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
Pass 5 1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
Stadju 6 1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
Stadju 7 1 4 7 8 22 37 44 74
bużżieqa tip eżempju fil Pascal
eżempju:
kol_mas const = 10;
Massiv var: firxa [1..kol_mas] tal numru sħiħ;
a, b, k: numru sħiħ;
tibda
writeln ( "input", kol_mas, "elementi tal-firxa");
għal: = 1 sa kol_mas tagħmel readln (Massiv [a ]);
għal: = 1 sa kol_mas-1 do tibda
għal b: = a + 1 sa kol_mas do tibda
jekk Massiv [k]> Massiv [ b] mbagħad tibda
k: = Massiv [k]; Massiv [k]: = Massiv [ b]; Massiv [b]: = k;
aħħarin;
aħħarin;
aħħarin;
writeln ( "wara tip");
għal: = 1 sa kol_mas tagħmel writeln (Massiv [a ]);
aħħar.
bużżieqa EŻEMPJU issortjar fil-lingwa C (Ċ)
eżempju:
#include
#include
int prinċipali (argc int, char * ARGV [])
{
int Massiv [8] = {36, 697, 73, 82, 68, 12, 183, 88}, i, ff;
għal (;;) {
ff = 0;
għal (i = 7; i> 0, i -) {
jekk (Massiv [i]
tpartit (Massiv [i], Massiv [i- 1]);
ff ++;
}
}
jekk (ff == 0) jinqatgħux;
}
getch (); // dewmien wiri
ritorn 0;
}.
Similar articles
Trending Now