Òdinatè, Pwogram
Klasman teknik nan programmation: Fouye "ti wonn"
sòt jarèt se pa sèlman konsidere yo dwe metòd ki pi rapid, Anplis, li fèmen lis la nan fason ki plus yo òganize. Sepandan, li gen avantaj li yo. Kidonk, metòd la nan klasman jarèt - pi plis nan ki pa ni se yon solisyon natirèl ak lojik nan pwoblèm nan, si ou vle pou fè aranjman pou atik yo nan yon lòd espesifik. Yon moun ki òdinè manyèlman, pou egzanp, li pral sèvi ak yo - jis pa entwisyon.
Ki kote te fè tankou yon Non etranj?
Metòd Non li moute soti deyò, lè l sèvi avèk analoji a nan boul lè nan dlo a. Li se yon metafò. Menm jan boul lè ti kras monte anwo - paske dansite yo se pi gran pase yon likid (nan ka sa a - dlo a), ak chak eleman etalaj, ki pi piti a li se valè a, wout la plis gradyèl nan tèt la nan nimewo ki lis.
Deskripsyon nan algorithm nan
se sòt jarèt fèt jan sa a:
- premye pas: eleman ki nan nimewo yo etalaj se pran pa de pè yo ak tou konpare. Si kèk eleman nan de-nonm ekip premye valè a gen plis pouvwa pase dezyèm lan, pwogram nan fè yo kote echanj;
- kidonk, pi gwo kantite justesse nan fen etalaj la. Pandan ke tout eleman ki lòt rete jan yo te, nan yon fason ki chaotic, epi mande pou plis klasman;
- ak Se poutèt sa mande pou yon pas dezyèm: li se te fè pa analoji ak anvan (deja dekri) ak gen yon nimewo nan konparezon - mwens yon sèl; nan
- nan nimewo pasaj twa konparezon, yon sèl mwens pase dezyèm lan, ak de la, pase premye a. Yo ak sou sa;
- rezime ke chak pasaj gen (tout valè nan etalaj la, ki kantite patikilye) mwens (nimewo pasaj) konparezon.
ka menm pi kout algorithm nan yon pwogram dwe ekri tankou:
- se yon etalaj nan nimewo tcheke osi lontan ke nenpòt ki nimewo de yo te jwenn, se dezyèm lan nan yo mare yo dwe pi gwo pase premye fwa a;
- mal positionné nan relasyon ak yon chak eleman lòt kote nan echanj yo lojisyèl etalaj.
Pseudocode ki baze sou algorithm a dekri
se aplikasyon an pi senp te pote soti jan sa a:
Sortirovka_Puzirkom pwosedi;
kòmanse
sik pou j soti nan nachalnii_index konechii_index;
sik pou m soti nan nachalnii_index konechii_index-1;
si masiv [mwen]> masiv [mwen + 1] (premye eleman ki pi konsekan pase yon dezyèm), Lè sa a,:
(Chanjman tou pre valè);
fen
Natirèlman, senplisite sa a sèlman kagrave sitiyasyon an: pi senp nan algorithm nan, plis la li manifeste tout defo yo. rapò Envestisman nan tan se twò gwo menm pou yon etalaj ti (isit la vini nan relativite: Kantite lajan an nan tan pou pwofàn a ka sanble ti, men an reyalite yon pwogramè chak konte dezyèm oswa menm milisgond).
Li te pran aplikasyon an pi byen. Pou egzanp, pran an kont echanj la nan valè nan kote etalaj:
Sortirovka_Puzirkom pwosedi;
kòmanse
sortirovka = verite;
sik jouk sortirovka = verite;
sortirovka = fo;
sik pou m soti nan nachalnii_index konechii_index-1;
si masiv [mwen]> masiv [mwen + 1] (premye eleman ki pi konsekan pase yon dezyèm), Lè sa a,:
(Chanje eleman kote);
sortirovka = verite; (Idantifye ki te echanj la te fè).
Fen.
limit
Dezavantaj nan prensipal - dire a nan pwosesis la. Konbyen tan se fè klasman algorithm jarèt?
se tan Plon kalkile soti nan nimewo a nan nimewo kare nan etalaj la - rezilta nan fen a li se pwopòsyonèl.
Si ka ki pi mal se etalaj la te pase kòm anpil fwa tankou li gen eleman mwens yon sèl valè. Sa rive paske nan fen a gen yon sèl eleman, ki pa gen anyen yo konpare, ak pas ki sot pase a nan etalaj la vin aksyon initil.
Anplis de sa, metòd efikas pou klasman yon echanj senp, kòm li se rele, se sèlman pou ranje nan ti gwosè. gwo kantite done avèk èd nan pwosesis pa pral travay: rezilta a pral swa yon erè oswa echèk nan pwogram nan.
diyite
sòt jarèt se trè fasil yo konprann. kourikoulòm lan nan inivèsite teknik nan etid la nan eleman yo kòmann-nan nan etalaj li yo pase nan plas an premye. Metòd la se fasil aplike tou de lang nan Delphi pwogram (L (Delphi), ak C a / C ++ (C / C plis plis), yon valè èkstrèmeman senp nan algorithm kote nan lòd ki dwat ak nan . Pascal nan (Pascal) sòt jarèt se ideyal pou débutan.
Akòz dezavantaj yo nan algorithm a se pa sa yo itilize nan rezon andeyò.
Vizyèl prensip klasman
View nan premye nan etalaj la 8 22 4 74 44 37 1 7
Etap 8 22 4 1 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
Etap 1 8 22 2 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
Etap 1 4 8 3 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
Etap 1 4 7 4 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
Etap 1 4 7 5 8 22 37 44 74
1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
Etap 1 4 7 6 8 22 37 44 74
1 4 7 8 22 37 44 74
Etap 1 4 7 7 8 22 37 44 74
jarèt sòt egzanp nan Pascal
egzanp:
kol_mas konstitisyon = 10;
var masiv: etalaj [1..kol_mas] nan nonb antye relatif;
A, B, K: nonb antye relatif;
kòmanse
writeln ( 'D' ', kol_mas, ' eleman nan etalaj ');
pou yon: = 1 a kol_mas fè readln (masiv [yon ]);
pou yon: = 1 a kol_mas-1 fè kòmanse
pou b: = yon + 1 a kol_mas kòmanse
si masiv [yon]> masiv [ b] Lè sa a, kòmanse
K: = masiv [yon]; masiv [yon]: = masiv [ b]; masiv [b]: = k;
fini;
fini;
fini;
writeln ( 'apre sòt');
pou yon: = 1 a kol_mas fè writeln (masiv [yon ]);
fen.
EGZANP jarèt klasman nan lang C (C)
egzanp:
# enkli
# enkli
int prensipal (int arg, Char * argv [])
{
int masiv [8] = {36, 697, 73, 82, 68, 12, 183, 88}, mwen, ff;
pou (;;) {
ff = 0;
pou (mwen = 7; mwen> 0; mwen -) {
si (masiv [mwen]
swap (masiv [mwen], masiv [I- 1]);
ff ++;
}
}
si (ff == 0) kraze;
}
getch (); // ekspozisyon reta
retounen 0;
}.
Similar articles
Trending Now