Computers, Programming
Sorting hom kev kawm nyob rau hauv programming: sorting "npuas"
npuas tsi no tsis tsuas xam tau tias yog mus yuav tus ceev tshaj txoj kev, tshaj tej ntawm, nws muab kaw rau hauv daim ntawv ntawm cov qeeb txoj kev los npaj. Txawm li cas los, nws muaj nws zoo. Yog li, cov qauv ntawm cov sorting npuas - lub feem ntau uas tsis yog ib tug natural thiab cov zajlus kom daws mus rau qhov teeb meem, Yog hais tias koj xav nrhiav cov khoom nyob rau hauv ib tug txog kev txiav txim. Ib tug dog dig tus neeg manually, piv txwv li, nws yuav siv lawv - cia li los ntawm qhov.
Qhov twg tau ua xws li ib tug txawv txawv lub npe?
Txoj kev lub npe tuaj, siv lub analogy ntawm huab cua bubbles nyob rau hauv cov dej. Nws yog ib tug ua piv txwv qhia. Ib yam li me ntsis cua bubbles sawv upward - vim hais tias lawv ceev yog ntau tshaj ib tug dej (nyob rau hauv cov ntaub ntawv no - cov dej), thiab txhua tus array caij, lub me nws yog tus nqi, qhov ntau gradual txoj kev mus rau lub sab saum toj ntawm daim ntawv teev xov tooj.
Hauj lwm ntawm lub algorithm
npuas tsi yog ua raws li nram no:
- thawj pass: lub ntsiab ntawm lub array xov tooj yog coj los ntawm cov ob khub thiab kuj piv. Yog hais tias ib co ntsiab ntawm ob tug txiv neej-pab thawj tus nqi yog siab tshaj lub thib ob, qhov kev pab cuam ua rau lawv pauv chaw;
- thiaj li, qhov loj tshaj tus naj npawb ntawm misses lub kawg ntawm lub array. Thaum uas tag nrho cov lwm yam hais nyob twj ywm raws li lawv tau, nyob rau hauv ib tug chaotic yam, thiab yuav tsum tau ntau sorting;
- thiab yog li ntawd yuav tsum tau ib tug thib ob pass: nws yog tsim los ntawm analogy nrog rau yav tas los (twb tau piav) thiab muaj ib tug xov tooj ntawm cov kev sib piv - rho tawm ib tug;
- ntawm zaj peb los sib piv, ib tug tsawg dua li tus thib ob, thiab tus ob, dua li cov ua ntej. Thiab yog li ntawd nyob rau hauv;
- saib lub ntsab lug uas txhua nqe vaj lug kub muaj (tag nrho cov tseem ceeb nyob rau hauv lub array, cov xov tooj) Rho tawm (zaj tooj) los sib piv.
Txawm luv luv algorithm ntawm ib tug kev pab cuam yuav tsum muab sau raws li:
- ib tug array ntawm tus xov tooj yog soj ntsuam raws li ntev raws li ob tus xov tooj yog pom, tus thib ob ntawm lawv yog ua txhua yam rau yuav ntau dua qhov ua ntej;
- incorrectly positioned nyob rau hauv kev sib raug zoo rau txhua tus lwm yam hais txog lub array software swaps.
Pseudocode raws li nyob rau hauv lub algorithm piav
Qhov yooj yim siv yog nqa tawm raws li nram no:
Sortirovka_Puzirkom txoj kev;
pib
voj voog rau j los ntawm nachalnii_index rau konechii_index;
voj voog rau kuv los ntawm nachalnii_index rau konechii_index-1;
yog massiv [i]> massiv [i + 1] (thawj lub caij ntau tshaj li ib tug thib ob), ces:
(Hloov muab qhov tseem ceeb);
kawg
Ntawm cov hoob kawm, qhov no simplicity xwb aggravates qhov teeb meem no: lub yooj yim lub algorithm, qhov ntau nws manifests tag nrho cov flaws. Peev piv ntawm lub sij hawm yog zoo heev txawm rau ib tug me me array (nyob ntawm no los nyob rau hauv Relativity: Tus nqi ntawm cov sij hawm rau cov sau tej zaum yuav zoo li me me, tab sis nyob rau hauv qhov tseeb ib programmer txhua txhua ob los yog txawm millisecond suav).
Nws coj zoo dua kev siv. Piv txwv li, noj mus rau hauv tus account cov kev pauv ntawm qhov tseem ceeb nyob rau hauv array qhov chaw:
Sortirovka_Puzirkom txoj kev;
pib
sortirovka = tseeb;
voj voog kom txog thaum sortirovka = tseeb;
sortirovka = cuav;
voj voog rau kuv los ntawm nachalnii_index rau konechii_index-1;
yog massiv [i]> massiv [i + 1] (thawj lub caij ntau tshaj li ib tug thib ob), ces:
(Hloov ntsiab qhov chaw);
sortirovka = tseeb; (Qhia tias cov kev pauv lawm).
End.
Cov kev txwv
Lub ntsiab disadvantage - qhov ntev ntawm tus txheej txheem. Yuav ua li cas npaum li cas lub sij hawm yog ua sorting algorithm npuas?
Txhuas lub sij hawm yog xam los ntawm tus xov tooj ntawm square tooj nyob rau hauv lub array - kawg tshwm sim ntawm nws yog proportional.
Yog hais tias qhov phem tshaj cov ntaub ntawv array yog kis li ntau lub sij hawm raws li nws muaj ntsiab rho tawm ib tug nqi. Qhov no tshwm sim vim hais tias nyob rau hauv lub kawg muaj no tsuas muaj ib lub caij, uas muaj tsis muaj dab tsi los sib piv, thiab lub xeem pass los ntawm cov array yuav puas kev txiav txim.
Nyob rau hauv tas li ntawd, zoo txoj kev sorting ib tug yooj yim pauv, raws li nws yog hu ua, tsuas yog rau cov arrays ntawm loj me me. Loj cov nqi ntawm cov ntaub ntawv nrog rau cov kev pab los ntawm cov txheej txheem yuav tsis ua hauj lwm: cov yuav tsum yog ib qho yuam kev los yog tsis ua hauj lwm ntawm qhov kev pab cuam.
meej mom
npuas tsi yog heev yooj yim to taub. Cov ntaub ntawv ntawm kev universities nyob rau hauv txoj kev tshawb no ntawm lub ordering ntsiab ntawm nws cov array dhau nyob rau hauv thawj qhov chaw. Cov qauv no yog ib qho yooj yim los mus siv ob lub Delphi programming lus (L (Delphi), thiab lub C / C ++ (C / C ntxiv ntxiv), ib tug heev kawg yooj yim qhov tseem ceeb ntawm qhov chaw algorithm nyob rau hauv txoj cai kev txiav txim thiab thaum lub Pascal (Pascal). Npuas tsi yog zoo tagnrho rau beginners.
Vim lub drawbacks ntawm lub algorithm yog tsis siv nyob rau hauv cov hom phiaj.
Visual sorting hauv paus ntsiab lus
Tus saib ntawm lub array 8 22 4 74 44 37 1 7
Kauj ruam 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
Kauj ruam 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
Kauj ruam 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
Kauj ruam 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
Kauj ruam 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
Kauj ruam 6 1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
Kauj ruam 7 1 4 7 8 22 37 44 74
npuas tsi piv txwv li nyob rau hauv Pascal
Piv txwv li:
const kol_mas = 10;
var massiv: array [1..kol_mas] ntawm integer;
ib tug, b, k: integer;
pib
writeln ( 'tswv yim', kol_mas, 'ntsiab ntawm array');
rau ib tug: = 1 mus rau kol_mas ua readln (massiv [ib tug ]);
rau ib tug: = 1 mus rau kol_mas-1 ua pib
rau b: = ib tug + 1 mus rau kol_mas tsis pib
yog massiv [ib tug]> massiv [ b] ces pib
k: = massiv [ib tug]; massiv [ib tug]: = massiv [ b]; massiv [b]: = k;
xaus;
xaus;
xaus;
writeln ( 'tom qab tsi');
rau ib tug: = 1 mus rau kol_mas ua writeln (massiv [ib tug ]);
kawg.
QAUV npuas sorting nyob rau hauv C hom lus (C)
Piv txwv li:
#include
#include
rau cov menyuam tseem ceeb (rau cov menyuam argc, char * argv [])
{
rau cov menyuam massiv [8] = {36, 697, 73, 82, 68, 12, 183, 88}, i, txiav;
rau (;;) {
txiav = 0;
rau (kuv = 7; i> 0; i -) {
yog hais tias (massiv [i]
sib puav (massiv [i], massiv [kuv- 1]);
txiav ++;
}
}
yog hais tias (txiav == 0) tawg;
}
getch (); // zaub ncua
rov qab 0;
}.
Similar articles
Trending Now