KompjutersIpprogrammar

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] [i- 1]) {

tpartit (Massiv [i], Massiv [i- 1]);

ff ++;

}

}

jekk (ff == 0) jinqatgħux;

}

getch (); // dewmien wiri

ritorn 0;

}.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 mt.birmiss.com. Theme powered by WordPress.