KomputeranBernameyên

Gaven teknîkên li bernameyên: gaven "nepoxa"

sort peqpeqonkî ye, ne bi tenê wê be, bilez di rêbaza, ji bilî, ku digire di lîsteyê de ji slowest riyên ji bo amadekirina. Lê belê, ew xwedî avantajên wê. Bi vî awayî, li awayê gaven nepoxa - ya herî, ku ne çareseriyeke xwezayî û mentiqî de ji bo pirsgirêka e, ger tu dixwazî saz de tomar li nîzama taybet. An ji rêzê bi destan, ji bo nimûne, wê ji wan re bi kar tînin - bi tenê bi intuition.

Where did wisa navê nedîtî?

navê Method rabû, bi bikaranîna analogy ji peqpeqok air di nav avê de. Ev a şibandinê ye. Çawa ku peqpeqok hewa kêm rabe bi jor de - ji ber ku zêdebûna wan mezintir a herkoyî (di vê rewşê de - di avê de) e, û her yek element array, li biçûktir ev nirxa, di rê de gav bi gav zêdetir jor li ser hejmara lîsteyê de ye.

Description ji Rêbaza

sort nepoxa wiha çêkiriye:

  • yekem pass: hêmanên hejmara array de ji aliyê du cotên birin û bi berhevdan. Heke hinek hêmanên ku her du-man tîma nirxa yekem mezintir ya duyem e, ku bernameya wan jî cihên rates;
  • pêşekzanan, yê herî mezin, hejmara wabûna dawiya array. Gava ku hemû elementên din pevê wekî xwe bûn, bi awayekî aloztir, û pêwîstî bi zêdetir gaven;
  • û ji ber vê yekê pêwîstî bi pass duyem: ku bi analogy bi made ya berê (ji berê şirove) heye hejmara danberhevê û - minus yek;
  • li hejmara passage sê muqayesekirin, yek kêmtir ji ya duyem, û her du, ji ya pêşî. Û bi vî awayî li ser;
  • kurtî, ku her tekstek heye (di hemû nirxên ku di array, hejmara taybetî) minus danberhevê (Cardinal passage).

Rêbaza Even kin ji bernameya dikare wekî nivîsîn:

  • nedadî yên hejmar wekî dirêj kontrolkirin û çawa ku her du hejmar bi dîtin, ya duyem jî ji wan mehkûm e ku bibe mezintir ji ya pêşî;
  • bi xeletî di têkiliyên bi hev elementên din yên nedana software array cih.

Pseudocode li ser Rêbaza şirove bingeha

Herî hêsan û pêkanîna tê kirin wiha hatiye lidarxistin:

prosedureke Sortirovka_Puzirkom;

destpêk

cycle bo j ji nachalnii_index bo konechii_index;

cycle bo i ji nachalnii_index bo konechii_index-1;

eger Massiv [i]> Massiv [i + 1] (element yekem mezintir a duyem), hingê:

(Guhertina Cih nirxên);

dawî

Bê guman, ev merdî tenê aggravates rewşa: algorîtmaya li sadetir, bêtir ew dîhar hemû qusûrên. ratio Investment ji dem jî ji bo array biçûk jî pir mezin e (li vir tê li relativity: The amount of time bo vejînin gifl biçûk, lê di rastiyê de bernameçêkerê her saniye an jî millisecond).

Ev girt pêkanîna çêtir e. Ji bo nimûne, kire nav danûstandina nirxên ku di ciyên array:

prosedureke Sortirovka_Puzirkom;

destpêk

sortirovka = true;

cycle heta sortirovka = true;

sortirovka = false;

cycle bo i ji nachalnii_index bo konechii_index-1;

eger Massiv [i]> Massiv [i + 1] (element yekem mezintir a duyem), hingê:

(Biguherîne hêmanên cihên);

sortirovka = true; (Hat diyarkirin ku danûstandina hatiye çêkirin).

End.

tengasîyên

Nebaşiya sereke - demajoya ji bo pêvajoyê. Çiqas demê vegerêne gaven algorithm nepoxa?

dem Lead ji hejmara hejmara square di array hesabkirin - li ser encama ev nîsbet e.

Eger rewşa herî xerab de array wek gelek caran derbas bûn wek ku hatiye hêmanên minus yek nirxa. Ev dibe ji ber ku di dawiyê de bi tenê yek element heye, ku tiştekî ji hev, û dawî pass bi rêya array action bêkêr dibe.

Li gel vê, awayê ji bo gaven danûstana sade, wekî ku tê gotin, bi tenê ji bo array ji size biçûk. mîqdarên mezin yên welat bi alîkariya pêvajoya xebata wê ne: di encama wê bibe, yan an error an têkçûna bernameya.

rûmet

sort nepoxa pir hêsan fêm bikin. The hîndekariyê de ji zanîngehên teknîkî di xebatê de ji hêmanên nizamî yên array wê derbas di rêza yekem de. Rêbaza han bi hêsanî wek zimanê bernameyên Delphi (D (Delphi) pêkanîn, û di C / C ++ (C / C plus plus), an algorithm qasî sade ji bo cihê nirxên li dora xwe û li Pascal (Pascal). Bubble sort îdeal ji bo arşîvkirin e.

Ji ber ve belî ya Rêbaza ku di armancên der nayê bikaranîn.

prensîba sorting Visual

Ku nêrîna destpêkê yên array 8 22 4 74 44 37 1 7

Step 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

Step 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 4 8 22 7 74 44 37

1 4 8 22 7 74 44 37

Gava 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

Gava 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

Step 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

Gava 6 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Step 7 1 4 7 8 22 37 44 74

nepoxa nimûne sort li Pascal

nimûne:

kol_mas const = 10;

var Massiv: array [1..kol_mas] ji hijmar e;

a, b, k: hijmar e;

destpêkirin

writeln ( 'input', kol_mas, 'hêmanên array');

ji bo: = 1 to kol_mas do readln (Massiv [a ]);

ji bo: = 1 to kol_mas-1 do dest pê

bo b: = a + 1 ji bo kol_mas dest bi

eger Massiv [a]> Massiv [ b] bi dest

k: = Massiv [a]; Massiv [a]: = Massiv [ b]; Massiv [b]: = k;

dawî;

dawî;

dawî;

writeln ( 'piştî sort');

ji bo: = 1 to kol_mas do writeln (Massiv [a ]);

dawî.

nepoxa MÎNAK gaven li zimanê C (C)

nimûne:

#include

#include

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

{

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

ji bo (;;) {

ff = 0;

ji bo (i = 7; i> 0; i -) {

Eger (Massiv [i] [i- 1]) {

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

ff ++;

}

}

Eger (ff == 0) bişkînin;

}

getch (); // dereng display

vegerin 0;

}.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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