Coimpiutairean, Prògramadh
Rèiteach dòighean-obrach ann am prògraman a tharraing à "builgean"
builgean-seòrsa nach eil e a-mhàin a mheas a bhith na bu luaithe dòigh, Os barr, tha e a 'dùnadh an duine as slaodaiche sa liosta de na dòighean a chur air dòigh. Ach, tha na buannachdan a. Mar so, an dòigh rèiteach builgean - as nach 'S e nàdarra agus loidsigeach fuasgladh air an duilgheadas, ma tha sibh airson a chur air dòigh sa sònraichte òrdugh. An duine àbhaisteach a làimh, mar eisimpleir, bidh e gan cleachdadh - dìreach le Intuition.
Far a bheil a leithid sin a rinn an t-ainm annasach?
Dòigh-ainm a thàinig suas, a 'cleachdadh an t-samhlachais adhair builgein ann an uisge. 'S e dealbh-cainnte. Dìreach mar a bheag adhair builgeanan ag èirigh os a cheann - oir tha an dùmhlachd nas motha na lionn (sa chùis seo - an t-uisge), agus gach eileamaid ordugh, nas lugha na tha e a 'cur luach air, na tuilleadh mean air mhean-slighe gu mullach an liosta-àireamhan.
Description an algairim
Deasaich builgean air a coileanadh mar a leanas:
- chiad bhealaich: eileamaid den ordugh àireamhan a thogail le dà phaidhir agus cuideachd ann an coimeas. Ma tha cuid de na h-eileamaidean an dà sgioba a 'chiad fear-luach nas motha na an dàrna prògram gan dèanamh iomlaid àiteachan;
- Mar sin, an àireamh as motha de ionndrainn deireadh an ordugh. Ged a bha a h-uile eileamaidean eile fhathast mar a bha iad, ann an dòigh coimeasgach, agus ag iarraidh tuilleadh rèiteach;
- agus uime sin ma tha feum agaibh dàrna bhealaich: tha e air a dhèanamh le samhlachais le roimhe (air a mhìneachadh mar-thà) agus tha an àireamh de coimeasan - thoir aon;
- aig trannsa uile trì coimeasan, aon na bu lugha na an dàrna, agus an dithis, na an toiseach. Agus mar sin air;
- geàrr-chunntas gu bheil gach trannsa a tha (a h-uile luachan ann an ordugh, gu h-àraidh an àireamh) thoir air falbh (àireamh trannsa) choimeas.
Fiù 's na bu ghiorra algairim de phrògram Faodar a sgrìobhadh:
- an ordugh àireamhan a sgrùdadh cho fad dà sam bith a tha àireamhan a lorg, an dàrna fear dhiubh a 'dol a bhith nas motha na an toiseach;
- ceàrr air an suidheachadh a thaobh gach eileamaidean eile de ordugh bathar-bog swaps.
Pseudocode stèidhichte air an algairim air a mhìneachadh
Simplidhe a chur an gnìomh a dhèanamh mar a leanas:
Sortirovka_Puzirkom mhodh;
a 'tòiseachadh
airson rothaireachd j bho nachalnii_index gu konechii_index;
airson rothaireachd i bho nachalnii_index gu konechii_index-1;
ma massiv [i]> massiv [i + 1] (a 'chiad eileamaid nas motha na an dàrna), an uair sin:
(Atharrachadh a 'cur luachan);
deireadh
Gu dearbh, seo simplidheachd a-mhàin aggravates an t-suidheachadh: shìmplidh an algairim, nas e nochdadh a h-uile lochdan. Tasgadh co-mheas na h-ùine a tha ro mhòr airson fiù 's beag an ordugh (seo a' tighinn ann an relativity: Tha an ùine airson a 'layman dh'fhaodadh coltas beag, ach gu dearbh phrogramaiche gach dàrna no fiù' s a 'cunntadh millisecond).
Thug e na b 'fheàrr a chur an gnìomh. Mar eisimpleir, a 'gabhail a-steach a' dèanamh iomlaid air na luachan ann an ordugh Àiteachan:
Sortirovka_Puzirkom mhodh;
a 'tòiseachadh
sortirovka = fior;
cearcall gus an sortirovka = fior;
sortirovka = meallta;
airson rothaireachd i bho nachalnii_index gu konechii_index-1;
ma massiv [i]> massiv [i + 1] (a 'chiad eileamaid nas motha na an dàrna), an uair sin:
(Atharrachadh eileamaidean àiteachan);
sortirovka = fior; (A chomharrachadh gu bheil an iomlaid air a bhith air a dhèanamh).
End.
Crìochan
Tha a 'phrìomh anacothrom - rè a' phròiseas. Dè an ùine a tha a 'cluich rèiteach algairim builgean?
Prìomh àm a thomhas bho an àireamh de ceàrnagach àireamhan ann an ordugh - deireadh thoradh air co-roinneil a tha e.
Ma tha a 'chùis na bu mhiosa ordugh a thoirt seachad cho tric' sa tha eileamaidean thoir aon luach. Tha seo a 'tachairt a chionn ann an deireadh, tha dìreach aon eileamaid, a bheil dad gus coimeas a dhèanamh, agus mu dheireadh tro bhealaich an ordugh a' fàs gun fheum gnìomh.
A thuilleadh air sin, dòigh èifeachdach de rèiteach sìmplidh iomlaid, mar a tha e air a ghairm, ach airson arrays beaga meud. Suimean mòra de dàta le cuideachadh phròiseas chan obraich: thoradh bi an dàrna cuid mearachd no fàilligeadh a 'phrògram.
urram
builgean seòrsa e glè furasta a thuigsinn. Tha churraicealaman teicnigeach oilthighean ann an rannsachadh an rian eileamaidean a ordugh seachad anns a 'chiad àite. Tha an dòigh a tha furasta a chur an gnìomh an dà chuid an Delphi cànan prògramaidh (L (Delphi), agus C / C ++ (C / C plus plus), uabhasach sìmplidh luachan location algairim anns an òrdugh cheart, agus aig an Pascal (Pascal). Bubble seòrsa seo freagarrach do luchd-tòiseachaidh.
Air sgàth an drawbacks an algairim air a bheil nach chleachdadh ann extracurricular adhbharan.
Lèirsinne Seòrsachadh prionnsabal
Tha a 'chiad sealladh air a' ordugh 8 22 4 74 44 37 1 7
Ceum 1 8 22 4 74 44 37 1 7
8 22 4 74 37 7 44 1
8 22 4 74 1 44 37 7
8 22 4 1 74 44 37 7
1 8 22 4 74 44 37 7
1 8 22 4 74 44 37 7
1 8 22 4 74 44 37 7
Ceum 8 22 2 1 4 74 44 7 37
1 8 22 4 74 44 7 37
1 8 22 4 74 44 7 37
1 8 22 4 74 44 7 37
1 8 22 4 74 44 7 37
1 4 7 8 22 74 44 37
Ceum 3 1 4 7 8 22 74 37 44
1 4 7 8 22 37 74 44
1 4 7 8 22 37 74 44
1 4 7 8 22 37 74 44
1 4 7 8 22 37 74 44
Ceum 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
Ceum 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
Ceum 1 4 6 7 8 22 37 44 74
1 4 7 8 22 37 44 74
Ceum 7 1 4 7 8 22 37 44 74
builgean seòrsa eisimpleir ann an Pascal
Mar eisimpleir:
const kol_mas = 10;
var massiv: ordugh [1..kol_mas] de integer;
a, b, k: integer;
a 'tòiseachadh
writeln ( 'cur a-steach', kol_mas, 'eileamaidean an ordugh');
airson: = 1 gu kol_mas dhèanamh readln (massiv [a ]);
airson: = 1 gu kol_mas-1 dhèanamh rithist
b airson: = a + 1 gu kol_mas a bhios a 'tòiseachadh
ma massiv [a]> massiv [ b] an uair sin a 'tòiseachadh
k: massiv = [a]; massiv [a]: massiv = [ b]; massiv [b]: = k;
crìch;
crìch;
crìch;
writeln ( 'an dèidh seòrsa');
airson: = 1 gu kol_mas dhèanamh writeln (massiv [a ]);
deireadh.
EISIMPLEIR builgean rèiteach ann an cànan C (C)
Mar eisimpleir:
#include
#include
int phrìomh (int argc, Char * argv [])
{
int massiv [8] = {36, 697, 73, 82, 68, 12, 183, 88}, i, FF;
do (;;) {
FF = 0;
airson (i = 7; i> 0; i -) {
ma (massiv [i]
suaipeadh (massiv [i], massiv [I- 1]);
FF ++;
}
}
ma (FF == 0) a bhriseadh;
}
getch (); // taisbeanadh dàil
0 till;
}.
Similar articles
Trending Now