ComputerProgramming

Hagpat teknik sa programming: hagpat "Bubble"

Bubble matang dili lamang giisip nga labing paspas nga pamaagi, dugang pa, kini magasira sa listahan sa mga slowest nga paagi sa pag-organisar. Apan, kini adunay iyang bentaha. Busa, ang paagi sa hagpat Bubble - ang labing nga dili mao ang usa ka natural nga solusyon sa problema, kon kamo kinahanglan nga arrange sa mga butang sa usa ka piho nga han-ay. Usa ka ordinaryo nga tawo sa kamut, alang sa panig-ingnan, kini gamiton sila - lang sa intuition.

Diin ang gibuhat sa maong usa ka talagsaon nga ngalan?

Pamaagi ngalan, mitungas, sa paggamit sa pagtandi sa hangin bubbles sa tubig. Kini usa ka pasumbingay. Sama nga gamay nga hangin bubbles mabanhaw ngadto sa itaas - tungod kay ang ilang Densidad mao ang labaw pa kay sa usa ka fluid (sa niini nga kaso - sa tubig), ug ang matag gubat elemento, ang mas gamay kini mao ang bili, ang labaw nga anam-anam nga paagi ngadto sa kinatumyan sa mga numero sa listahan.

Paghulagway sa algorithm

Bubble matang gihimo nga ingon sa mosunod:

  • unang agianan: ang mga elemento sa mga numero gubat gikuha sa duha ka mga nagtinagurha ug usab itandi. Kon ang pipila sa mga elemento sa unang bili sa duha ka-tawo nga team mao ang labaw pa kay sa ikaduha, ang mga programa naghimo kanila baylo nga mga dapit;
  • ang sangputanan, ang labing dako nga gidaghanon sa mga nilang sipyat sa katapusan sa gubat. Samtang ang tanan nga mga uban nga mga elemento magpabilin ingon nga sila, sa usa ka samok nga paagi, ug nagkinahanglan labaw pa hagpat;
  • ug busa nagkinahanglan sa usa ka ikaduha nga pass: kini gihimo pinaagi sa analohiya uban sa sa miaging (na gihulagway) ug adunay usa ka gidaghanon sa mga mga pagtandi - minus usa;
  • sa tudling nga gidaghanon sa tulo ka mga pagtandi, ang usa nga ubos pa kay sa ikaduha, ug ang duha ka, kay sa una. Ug mao nga sa;
  • summarize nga ang matag tudling adunay (sa tanan nga mga prinsipyo sa gubat, sa partikular nga gidaghanon) minus (tudling gidaghanon) pagtandi.

Bisan mubo algorithm sa usa ka programa mahimong gisulat ingon nga:

  • usa ka gubat sa mga numero mao ang gitan-aw ingon sa kadugayon nga sa bisan unsa nga duha ka numero makita, ang ikaduha kanila nga ginapus ngadto sa labaw pa kay sa una;
  • sayop posisyon sa relasyon sa usag usa nga mga elemento sa swaps gubat software.

Pseudocode base sa algorithm nga gihulagway

Ang simplest pagpatuman ang gidala sa gawas sama sa mosunod:

Sortirovka_Puzirkom pamaagi;

sugod

siklo alang sa f gikan sa nachalnii_index sa konechii_index;

siklo alang ko gikan sa nachalnii_index sa konechii_index-1;

kon massiv [i]> massiv [i + 1] (unang elemento nga mas dako pa kay sa usa ka ikaduha nga), unya:

(Kausaban nagbutang mga mithi);

katapusan

Siyempre, kini nga kayano nakapasamot lang sa kahimtang: ang simple ang algorithm, ang labaw nga kini nagpakita sa tanan nga mga depekto. Investment ratio sa panahon nga dako kaayo bisan pa alang sa usa ka gamay nga gubat (dinhi moabut sa relativity: Ang kantidad sa panahon alang sa magbubuhat daw gamay, apan sa pagkatinuod usa ka programmer matag ikaduha o bisan millisecond counts).

Kini gikuha ang mas maayo nga pagpatuman. Pananglitan, nagakuha sa ngadto sa asoy sa pagbinayloay sa mga mithi sa mga dapit gubat:

Sortirovka_Puzirkom pamaagi;

sugod

sortirovka = tinuod;

siklo hangtud sortirovka = tinuod;

sortirovka = bakak;

siklo alang ko gikan sa nachalnii_index sa konechii_index-1;

kon massiv [i]> massiv [i + 1] (unang elemento nga mas dako pa kay sa usa ka ikaduha nga), unya:

(-Usab sa mga elemento nga mga dapit);

sortirovka = tinuod; (Nailhan nga ang exchange nga gihimo).

Katapusan.

limitasyon

Ang nag-unang Disbentaha - sa gidugayon sa sa proseso. Sa unsang paagi nga daghan nga panahon ang gihimo hagpat algorithm Bubble?

Lead panahon kalkulado gikan sa gidaghanon sa mga square numero sa gubat - ang katapusan nga resulta sa niini mao ang nagkaigo.

Kon ang labing kaso sa gubat miagi ingon nga sa daghan nga mga panahon ingon nga kini adunay mga elemento minus sa usa ka bili. Kini mahitabo tungod kay sa katapusan may usa lamang ka elemento, nga walay bisan unsa nga itandi, ug ang katapusan nga agianan pinaagi sa gubat mahimong walay pulos nga aksyon.

Dugang pa, epektibo nga pamaagi sa hagpat sa usa ka yano nga baylo, ingon nga kini gitawag, lamang alang sa arrays sa mga gagmay nga gidak-on. Dako nga kantidad sa data uban sa tabang sa proseso dili sa trabaho: ang resulta mahimong sa bisan usa ka sayop o kapakyasan sa programa.

dignidad

bula nga matang mao ang kaayo sayon nga masabtan. Ang kurikulum sa teknikal nga unibersidad sa pagtuon sa mga elemento tulomanon sa iyang gubat nahitabo sa unang dapit. pamaagi mao ang sayon sa pagpatuman sa mga Delphi programming pinulongan (L (sa Delphi), ug ang C / C ++ (C / C plus plus), nga usa ka hilabihan ka yano nga mga prinsipyo sa algorithm nahimutangan sa husto nga han-ay ug sa Pascal (Pascal). Bubble matang mao ang sulundon nga alang sa mga magsusugod.

Tungod sa mga drawbacks sa algorithm wala gigamit sa ekstrakurikular nga mga katuyoan.

Visual paglain-lain nga baruganan

Ang inisyal nga panglantaw sa gubat 8 22 4 74 44 37 1 7

Lakang 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

Lakang 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

Lakang 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

Lakang 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

Lakang 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

Lakang 6 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Lakang 7 1 4 7 8 22 37 44 74

Bubble matang sa panig-ingnan sa Pascal

nga panig-ingnan:

const kol_mas = 10;

var massiv: gubat [1..kol_mas] sa integer;

a, b, k: integer;

magsugod

writeln ( 'input', kol_mas, 'mga elemento sa gubat');

alang sa usa ka: = 1 ngadto sa kol_mas sa pagbuhat sa readln (massiv [usa ka ]);

alang sa usa ka: = 1 sa kol_mas-1 sa pagbuhat sa magsugod

alang sa b: = usa ka + 1 ngadto sa kol_mas nga magsugod

kon ang massiv [usa ka]> massiv [ b] unya magsugod

k: = massiv [usa ka]; massiv [usa ka]: = massiv [ b]; massiv [b]: = k;

matapos;

matapos;

matapos;

writeln ( 'human sa matang');

alang sa usa ka: = 1 ngadto sa kol_mas sa pagbuhat sa writeln (massiv [usa ka ]);

katapusan.

PANIG-INGNAN bula hagpat sa C pinulongan (C)

nga panig-ingnan:

#include

#include

int main (int argc, char * argv [])

{

int massiv [8] = {36, 697, 73, 82, 68, 12, 183, 88}, i, ff;

alang sa (;;) {

ff = 0;

alang sa (i = 7; i> 0; i -) {

kon (massiv [i] [i- 1]) {

swap (massiv [i], massiv [i- 1]);

ff ++;

}

}

kon (ff == 0) sa paglapas;

}

getch (); // display paglangan

mobalik 0;

}.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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