КомпютерБарномасозӣ

Ҷобаҷогузорӣ техника дар барномарезии: ҷобаҷогузорӣ "ҳубобӣ"

гуна ҳубобӣ аст, на танҳо баррасӣ мешавад, босуръат усули, гузашта аз ин, он пӯшида рӯйхати slowest роҳҳои ташкил мекунанд. Бо вуҷуди ин, афзалиятҳо дорад он. Ҳамин тариқ, усули ҷобаҷогузорӣ ҳубобӣ - бештар, ки на як роҳи ҳалли табиӣ ва мантиқӣ ба он вобаста аст, агар шумо мехоҳед, барои ба тартиб адад дар як тартиби муайян. Одами маъмулњ ба таври дастӣ, барои мисол, аз он ба онҳо истифодаи - танҳо бо хисси.

Дар куҷо буд чунин номи ғайриоддӣ?

Номи усули омада, бо истифода аз қиёси аз футури ҳаво дар об. Ин Ибораи аст. Чӣ тавре ки футури ҳаво каме қиём боло - ба сабаби зичии онҳо бештар аз як моеъи (дар ин ҳолат - аз об) аст, ва ҳар як унсури массиви, хурдтар аз он арзиши, роҳи тадриҷан бештар ба болои рӯйхат рақамҳо мебошад.

Тавсифи алгоритми

гуна ҳубобӣ аст, ба таври зерин иҷро:

  • аввал ағбаи: элементҳои массиви рақамҳои аст, аз тарафи ду қисм гирифта ва низ нисбат. Агар баъзе унсурҳои ин ду марди дастаи арзиши аввал бузургтар аз дуюм аст, ки барномаи онҳо медиҳад, ҷойҳои асъор;
  • бинобар ин, ба миқдори бештари ақидаронӣ дар охири массиви. Дар ҳоле ки ҳамаи унсурҳои дигар боқӣ мемонад онҳо буданд, ба таври хаотикњ, ва талаб бештар ҷобаҷогузорӣ;
  • ва аз ин рӯ талаб мекунад дуввум: он аст, монандӣ бо дод қаблӣ (аллакай тасвир), дорои як қатор Муқоисаи ва - таріи яке аз;
  • дар шумораи гузариш се мисол, яке аз камтар аз дуюм, ва ҳар ду, аз аввал. Ва то бар;
  • хулоса, ки ҳар як порча дорад (ҳамаи арзишҳои дар саф, шумораи махсус) тарњи Муқоисаи (рақами гузариш).

алгоритми Ҳатто кӯтоҳ барномаи метавонад ҳамчун навишта шудааст:

  • амаликунонии рақамҳо аст, то даме ки месанҷад, чун ҳар ду рақамҳои ёфта, дуюм аз онҳо баста аст, бошад, бузургтар аз аввал;
  • нодуруст дар робита ба ҳар унсурҳои дигар МБ нармафзори массиви мавқеъи.

Pseudocode дар бораи алгоритми тасвир дар асоси

Дар соддатарин татбиқи аст, ки ба таври зерин амалӣ карда мешавад:

Тартиби Sortirovka_Puzirkom;

сар

давра барои к, аз nachalnii_index ба konechii_index;

давра барои ман аз nachalnii_index ба konechii_index-1;

Агар massiv [Ман]> massiv [ман + 1] (унсури аввал бузургтар аз дуюм), пас:

(Тағйирёбии ҷойҳои арзишҳои);

охир

Албатта, ин танҳо самимияте тезутунд вазъи: алгоритми осонтар, ки бештар аз он зоҳир ҳамаи камбудиҳои. Таносуби сармоягузорӣ вақт ҳатто барои як массиви хурд хеле бузург аст (дар ин ҷо расад, ки дар нисбият: Ҳаҷми вақти барои имондори метавонад ба назар хурд, вале дар асл як барномасоз ҳар ҳисоб дуюм ё ҳатто millisecond).

Он гирифта, татбиқи беҳтар. Масалан, бо назардошти дар мубодилаи дороињои дар ҷойҳои саф:

Тартиби Sortirovka_Puzirkom;

сар

sortirovka = рост;

давра то sortirovka = рост;

sortirovka = бардурӯғ;

давра барои ман аз nachalnii_index ба konechii_index-1;

Агар massiv [Ман]> massiv [ман + 1] (унсури аввал бузургтар аз дуюм), пас:

(Тағйир унсурҳои ҷойҳои);

sortirovka = рост; (Муайян, ки дар нуқтаҳои мубодилаи дода шудааст).

Анҷоми.

Маҳдудияти

Камбудии асосии - давомнокии раванди. Чӣ қадар вақт анҷом дода аст, ҷобаҷогузорӣ алгоритми ҳубобӣ?

вақти ӯҳда аст, ки аз шумораи рақамҳои мураббаъ дар саф њисоб - натиҷаи анҷоми он мутаносибан аст.

Агар бадтарин ҳолат массиви аст, чанд маротиба гузашт он дорад, унсурҳои минуси як арзиши. Ин ҳодиса рӯй медиҳад, зеро дар охири аст, танҳо як унсури он ҷо, ки чизе барои муқоиса, ва охирин ағбаи ба воситаи массиви амали бефоида мегардад.

Илова бар ин, усули самараноки ҷобаҷогузорӣ табодули оддӣ, мисли он аст, ном, танҳо барои рамзхо аз андозаи хурд. миқдори зиёди маълумот бо ёрии раванди кор нахоҳад кард: натиҷаи хоҳад буд ё хато ва ё нокомии барномаи.

шаъну шарафи

гуна ҳубобӣ хеле осон аст бифаҳманд. Дар барномаҳои таълимии мактабҳои олии техникӣ дар омӯзиши элементҳои массиви фармоишњои он воқеъ дар ҷои аввал. Усули осон аст, ки ба амалӣ ҳам ба забони Delphi барномасозӣ (L (Delphi), ва C / C ++ (C / C плюс плюс), як арзишҳои бениҳоят оддии алгоритми ҷойгиршавии бо тартиби дуруст ва дар Паскал (Паскал). Ҳубобӣ гуна беҳтарин барои шурӯъкунандагон аст.

Дар робита ба пешина аз алгоритми аст, ки дар берун аз мақсадҳои истифода бурда намешаванд.

принсипи мураттабсозии Visual

Дар назари аввал аз массиви 8 22 4 74 44 37 1 7

Қадами 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

Қадами 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

Қадами 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 7 8 22 37 74 44

1 4 7 8 22 37 74 44

Қадами 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

Қадами 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

Қадами 6 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Қадами 7 1 4 7 8 22 37 44 74

ҳубобӣ намунаи гуна дар Паскал

масалан:

kol_mas const = 10;

var massiv: массиви [1..kol_mas] аз бутуни;

а, б, к: бутуни;

сар

writeln ( 'вуруди', kol_mas, 'элементҳои массиви');

барои: = 1 ба кор kol_mas readln (massiv [а ]);

барои: = 1 ба kol_mas-1 кор оғоз

Барои б: = а + 1 ба kol_mas кор сар

Агар massiv [а]> massiv [ б] он гоҳ оғоз

К = massiv [а]; massiv [а] = massiv [ б]; massiv [б] = К;

охир;

охир;

охир;

writeln ( 'баъд гуна');

барои: = 1 ба кор kol_mas writeln (massiv [а ]);

охири.

ҳубобӣ НАМУНАИ ҷобаҷогузорӣ бо забони C (C)

масалан:

#include

#include

Int асосии (Int argc, char * argv [])

{

Int massiv [8] = '{36, 697, 73, 82, 68, 12, 183, 88}, ман, ff;

барои (;;) {

ff = 0;

барои (ман = 7; Ман> 0; ман -) {

Агар (massiv [ман] [i- 1]) {

своп (massiv [ман], massiv [i- 1]);

ff ++;

}

}

Агар (ff == 0) мешикананд;

}

getch (); // таъхир Намоиши

баргаштан 0;

}.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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