Számos módszert fejlesztettek ki az értékek növekvő vagy csökkenő sorrendben történő rendezésére (rendezésére) egy tömbben [Wirth, Knuth. t 3]. Tekintsünk ezek közül hármat, a határozottság kedvéért figyelembe véve, hogy az X tömb első n, n=6 eleme

Minden következő i-edik lépésben, i=2, 3,…,n-1, a tömb (i+1)-edik cellájából származó érték a cella indexének csökkentése felé tolódik el úgy, hogy helyet cserél az előző számmal. cella-ig Nem fog kiderülni, hogy az előző cella kisebb számot tartalmaz.

A fentiekből az következik, hogy a módszer megvalósítása során közvetlen kapcsolat A külső ciklust n-1 alkalommal kell végrehajtani, és a belső ciklus végrehajtásainak maximális száma, amelynek törzsében számok összehasonlítását és permutációját kell végrehajtani, 1-ről n-1-re nő. A belső ciklust azonban úgy kell megszervezni, hogy az véget érjen, vagy egyáltalán ne kerüljön végrehajtásra, amikor a feltétel bekövetkezik: az előző tömbcellában az érték kisebb, mint az aktuálisban.

Példánkban:

Ha i=2, az X 3 cellából származó 15-ös szám egymás után helyet cserél az X2-es cellából származó 34-es számmal, majd az X1-es cellából a 21-es számmal,

Ha i=4, az X 5 cellából származó 25-ös szám helyet cserél az X3-as cellából származó 34-es számmal,

Az alábbiakban egy program töredéke látható, amely az X tömb első n elemének növekvő sorrendben történő rendezésére szolgál a direkt inklúziós módszerrel (befoglalás a sorrend fenntartása mellett).

    az i:=1 - n-1 do

  1. míg (X 0) nem

  2. R:=X[j];

    X[j]:=X;

    X:=R;

A tömbben lévő számok csökkenő sorrendbe rendezéséhez elegendő minden lépésben megváltoztatni a tömb szomszédos celláiban lévő számok permutálásának feltételét az ellenkezőjére, nevezetesen a szomszédos cellák értékeinek cseréje a az az eset, amikor az előző kisebb, mint a jelenlegi.

Közvetlen cseremódszer (buborékos módszer).

Ez a módszer az előzőhöz hasonlóan a tömb szomszédos celláinak értékeinek cseréjén alapul, de a szekvenciális elemzés legelső lépésétől kezdve, amikor a tömb egyik végéről a másikra haladunk, minden pár a tömb szomszédos cellái érintettek.

Az első lépésben egymás után j = n, n-1, ..., 2 esetén a tömb szomszédos celláinak értékeit hasonlítjuk össze, és ha az X j feltétel<Х j-1 выполняется их перестановка, в результате чего наименьшее число оказывается в ячейке Х 1 .

Példánkban az első lépés befejezése után a tömbben lévő adatok a következőképpen helyezkednek el:

Minden következő lépésben az ellenőrizendő cellapárok száma 1-gyel csökken. Általánosságban elmondható, hogy az i, i=1, 2, 3, ..., n-1 bármelyik lépésben a folyamat j-re kerül végrehajtásra. n-től i+1-ig, különösen i= n-1 esetén – csak egyszer az n-edik és (n-1)-edik cella esetén.

A fentiekből következik, hogy a direkt cseremódszer megvalósítása során a külső ciklust n-1 alkalommal kell végrehajtani, és csökkenni fog a belső ciklus végrehajtásainak száma, amelynek törzsében a számok összehasonlítását, átrendezését kell végrehajtani. n-1-től 1-ig.

A „buborékos módszer” kifejezés eredetét a következőképpen magyarázzuk: ha elképzeljük a tömb celláinak függőleges elrendezését növekvő indexszel fentről lefelé, akkor a legkisebb számú figyelembe vett buborékként emelkedik fel a vízben.

Példánkban

Ha i=3, a permutációk a tömb következő állapotához vezetnek

A buborékos módszer alkalmazásakor nem mindegy, hogy a tömbben lévő számpárok elemzése növekvő vagy csökkenő indexek felé halad, és a sorrend típusát (növekvő vagy csökkenő) csak a számok permutációjának feltétele határozza meg (a a kisebbet a nagyobb mögött kell elhelyezni, vagy fordítva).

Módosított közvetlen cseremódszer (módosított buborékmódszer).

Amint a fenti numerikus példából látható, a tömb a negyedik lépés után rendezettnek bizonyult, vagyis nem n-1-szer, hanem kevesebbszer lehet végrehajtani a külső ciklust, amikor kiderül, hogy a tömb már megrendelt. Ez az ellenőrzés a következőkön alapul: ha a belső ciklus végrehajtása során nem történt permutáció, akkor a tömb már rendezett, és kiléphet a külső ciklusból. Egy logikai típusú változót használunk annak jelzésére, hogy történt-e permutáció: a belső ciklusba való belépés előtt egy értéket kap, például False, a permutáció végrehajtásakor pedig egy másik értéket, pl. Igaz.

Nyilvánvalóan akkor figyelhető meg a módosított buborékos módszer alkalmazása a nem módosított módszerhez képest a rendezési folyamat felgyorsításában, ha az eredeti számsor közel áll ahhoz, hogy a kívánt irányba rendeződjön. Extrém esetben, amikor a tömb már a kívánt módon rendezve van, a külső ciklus törzse csak egyszer kerül végrehajtásra.

Módszer: Anyagok nedvességtartalmának közvetett mérésére szolgáló módszer, amely ezen anyagok dielektromos állandójának nedvességtartalmuktól való függésén alapul. Forrás: RMG 75 2004: Állami élelmiszer-ellátási rendszer ...

VÉR- VÉR, a test artériáit, vénáit és hajszálereit kitöltő folyadék, amely átlátszó halványsárgás színű. a plazma színe és a benne szuszpendált képződő elemek: vörösvértestek, vagy eritrociták, fehérvérsejtek vagy leukociták, és vér plakkok, vagy ... Nagy Orvosi Enciklopédia

Ingatlan- (Ingatlan) Ingatlan fogalma, ingatlanfajták, ingatlan bérbeadása, eladása Tájékoztatás az ingatlan fogalmáról, ingatlanfajtákról, ingatlan bérbeadásáról és eladásáról, adózásról és biztosításról Tartalom - ez a típus ingatlan, ...... Befektetői Enciklopédia

Ennek a kifejezésnek más jelentései is vannak, lásd C. Lásd még: C (programozási nyelv) C++ Szemantika: többparadigma: objektum-orientált, általános, procedurális, metaprogramozás A végrehajtás típusa: lefordítva Megjelent a ... Wikipédiában

AZ IMMATERIÁLIS ESZKÖZÖK ÉRTÉKÉNEK ÉRTÉKELÉSE- (angol. immateriális javak értékelése) - a vállalkozásnak a tárgyi tartalommal nem rendelkező, a vállalkozás számára bevételt hozó tárgyak bizonyos csoportjához fűződő jogok mennyiségi értékének meghatározása a nemzeti... által meghatározott időszakban. .. Pénzügyi és hitelügyi enciklopédikus szótár

ISKOLA általános műveltség- jaj. nevelni fogja intézmény, alapelem alakult ki. rendszerek. Ebben a minőségében Sh. a kutatás tárgya. tudományágak: pedagógia, történelem, demográfia, szociológia stb. Csak a pedagógiában foglal el teljesen önálló helyet a tudomány problémája. hely. Tudás...... Orosz Pedagógiai Enciklopédia

idő- 3.3.4 tE idő (tE idő): a forgórész vagy az állórész tekercsének kezdeti indító váltóáramának IA általi felfűtésének ideje a névleges üzemmódban elért hőmérsékletről a maximális környezeti hőmérsékleten megengedett hőmérsékletre. Forrás … A normatív és műszaki dokumentáció kifejezéseinek szótár-referenciája

GOST R IEC 60204-1-2007: Gépek biztonsága. Gépek és mechanizmusok elektromos berendezései. 1. rész. Általános követelmények- Terminológia GOST R IEC 60204 1 2007: Gépek biztonsága. Gépek és mechanizmusok elektromos berendezései. 1. rész Általános követelmények eredeti dokumentum: TN táprendszerek A 18.2.2 szerinti 1. módszer szerinti vizsgálatok minden egyes áramkörre elvégezhetők... ... A normatív és műszaki dokumentáció kifejezéseinek szótár-referenciája

auto- 3.3.1 automatikus mintavevő: A csővezetéken átfolyó folyadék reprezentatív mintájának vételére szolgáló eszköz. Megjegyzés Az automatikus mintavevő általában egy szondából, egy elszívóból áll... ... A normatív és műszaki dokumentáció kifejezéseinek szótár-referenciája

feszültség- 3.10 feszültség: A húzóerő és a láncszem keresztmetszeti területének aránya a névleges méreteknél.

Ezt a módszert széles körben használják kártyázáskor. Az elemek (kártyák) gondolatban fel vannak osztva a már „kész” sorozatra A 1 , A 2 ,…, A i -1 , és a „fennmaradó” (nem rendezett) részre: A i , A i +1 ,…, A N .

A módszer lényege, hogy minden i-edik lépésnél (i = 2-től kezdve) az i-edik elemet eltávolítjuk a rendezetlen részből, és a „kész” részbe helyezzük, miközben beillesztjük Jó helyen.

A módszer szöveges algoritmusa:

1. Kezdet.

2. Végezzen hurkot addig, amíg i értéke nem lesz 2-től N-ig,
lépés = 1:

a) helyezzük az i-edik elemet (A(i)) az A(0) cellába;

b) adjunk hozzá j = -1-et, azaz j egyenlő az alanytól balra található (i-edik) elem számával, amely így a „kész” sorozatban áll;

c) ha A(0) ≥ A(j), akkor az A(0) elemet helyezzük az A(j+1) cellába, ellenkező esetben az A(j) elemet az A(j+1) cellába, csökkentsük az értéket j-ből egyet, és hajtsa végre ismét a c lépést.

ábrán. Az 1. ábra a közvetlen befogadás módszerével történő rendezés blokkdiagramját mutatja.

A módszer a következőképpen működik: az i-edik lépésnél (i = 2-től kezdve) az i-edik elem egy szabad cellába kerül (például A(0)). Ezt az elemet összehasonlítjuk a tőle balra lévő „kész” részben lévő elemmel. Ha az A(0) elem kisebb, akkor az összehasonlított (j-edik elem) egy pozícióval jobbra tolódik, majd a következő elemet veszik összehasonlításra. Ha az A(0) elem nem kisebb az összehasonlítás során, akkor közvetlenül az összehasonlítandó elem utáni helyre kerül.

Rizs. 1. A rendezés folyamatábrája a közvetlen befogadás módszerével

ábrán. A 2. ábra egy példát mutat be a rendezés közvetlen befogadási módszerrel történő végrehajtására.

Eredeti sorrend
A (0)
I = 2
I = 3
I = 4
I = 5
I = 6
I = 7
I = 8
Eredmény

Rizs. 2. Példa a közvetlen befogadás szerinti rendezésre

A közvetlen rendezés inkább arra az esetre alkalmas, amikor a rendezett adatok szekvenciálisan (egymás után) érkeznek.

Közvetlen kiválasztási rendezés

A módszer lényege a következő. A "fennmaradó" (nem rendezett) rész legkisebb eleme kiválasztásra kerül, és felcserélődik az első elemmel (ugyanabban a rendezetlen részben). Ezt követően a rendezetlen rész hosszát egy elemmel csökkentjük (az elsővel), és az egész folyamat folytatódik (n – 1) elemmel, majd (n – 2) elemmel stb., amíg csak egy marad. balra.a legnagyobb elem.

Ez a módszer bizonyos tekintetben ellentétes a közvetlen befogadás módszerével. A közvetlen beillesztési módszerben minden lépésben csak egy következő elemet és a sorozat már „kész” részének összes elemét veszik figyelembe, amelyek között megtaláljuk ennek a következő elemnek a beillesztési pontját. A közvetlen kiválasztási módszernél pedig egy (minimális) elem megtalálásához a rendezetlen rész összes elemét átnézik, és ez a minimális elem újabb elemként kerül a már „kész” részbe.

A módszer szöveges algoritmusa:

1. Kezdet.

2. Hurok addig, amíg i értéke 1 és N – 1 között nem lesz,
lépés = 1:

a) helyezze az aktuális (i-edik) elemet valamilyen memóriacellába (X), és emlékezzen az aktuális elem sorszámára (i) (a K változóban);

b) hajtson végre egy ciklust, miközben j értéke i + 1-től (vagyis az i melletti elemtől) N-ig terjed, lépés = +1:

a hurok törzse: ha X > A(j), akkor az A(j) elemet helyezzük az X cellába, és emlékezzünk a számra a K cellában;

c) A(K) = A(i) és A(i) = X hozzárendelése.

ábrán. A 3. ábra egy példát mutat be a rendezés közvetlen kiválasztási módszerrel történő végrehajtására.

Eredeti sorrend 44 06
I = 1 55 12
I = 2 55 18
I = 3 42 55
I = 4 94 44
I = 5 55 94
I = 6 94 67
I = 7

Rizs. 3. Példa közvetlen kiválasztási rendezésre

A rendezés a memóriában lévő adatok szabályos elrendezése a kiválasztott paraméter szerint. A szabályszerűséget a paraméterérték növekedésének (csökkenésének) tekintjük az adattömb elejétől a végéig.

Az adatok feldolgozása során fontos ismerni az adatok információs mezőjét és elhelyezkedését a gépben.

Létezik belső és külső rendezés:

Belső szortírozás – beválogatás véletlen hozzáférésű memória;

Külső rendezés - rendezés külső memóriában.

Ha a rendezett iratok nagy mennyiségű memóriát foglalnak el, akkor az áthelyezésük költséges. Csökkentésük érdekében szortírozást végeznek kulcscímtáblázat, azaz átrendezik a mutatókat, de maga a tömb nem mozdul. ez - módszer a címtábla rendezésére.

Rendezéskor azonos kulcsok jelenhetnek meg. Ebben az esetben célszerű a rendezés után ugyanazokat a kulcsokat a forrásfájlban megadott sorrendbe rendezni.ez - stabil válogatás.

Csak azokat a típusokat vesszük figyelembe, amelyek nem használnak további RAM-ot. Az ilyen fajtákat ún "ugyanott".

A válogatás hatékonysága több szempont szerint is mérlegelhető:

A válogatásra fordított idő;

A rendezéshez szükséges RAM mennyisége;

A programozó által a programírással töltött idő.

Kiemeljük az első kritériumot. A válogatásra fordított idő egyenértékűnek tekinthető összehasonlítások számaÉs mozgások száma válogatás végrehajtásakor.

A rendezés során az összehasonlítások és mozgások számának sorrendje benne van

O-tól (n log n) O-ig (n 2);

O(n) ideális és elérhetetlen eset.

A következő válogatási módszereket különböztetjük meg:

Szigorú (közvetlen) módszerek;

Továbbfejlesztett módszerek.

Szigorú módszerek:

Közvetlen befogadási módszer;

Közvetlen kiválasztási módszer;

Közvetlen cseremódszer.

A szigorú módszerek hatékonysága megközelítőleg azonos.

Közvetlen válogatás

Az elemek gondolatilag egy kész sorozatra 1 ,...,a i-1 és az eredeti sorozatra vannak felosztva.

Minden lépésben i = 2-ből kiindulva és i-t minden alkalommal eggyel növelve kivonjuk az eredeti sorozatból i-edik elemés átkerül a kész sorozatra, miközben a megfelelő helyre kerül.

Az algoritmus lényege a következő:

i = 2 és n között

X = a(i)

Az a(1)…a(i) között találunk helyet az x szerepeltetésének

következő i


Két előre válogató algoritmus létezik. Az első akadály nélküli

Közvetlen befogadás-rendezési algoritmus akadály nélkül

i = 2 és n között

X = a(i)

j = i-1 esetén 1-ig

Ha x< a(j)

Ekkor a(j + 1) = a(j)

Különben menj L-hez

Endif

Következő j

L: a(j + 1) = x

következő i

Visszatérés

A fenti algoritmus hátránya a technológia megsértése strukturált programozás, amelyben nem kívánatos a feltétel nélküli átmenetek alkalmazása. Ha a belső hurok while hurokba szerveződik, akkor fel kell állítani egy „korlátot”, amely nélkül negatív kulcsértékek esetén jelentőségvesztés következik be, és a számítógép „lefagy”.

Közvetlen befogadás-rendezési algoritmus korláttal

i = 2 és n között

X = a(i)

A(0) = x (a(0) – akadály)

J = i-1

Míg x< a(j) do

A(j+1) = a(j)

J = j-1

Vége

A(j +1) = x

következő i

Visszatérés

Az előrecsatolt algoritmus hatékonysága

A Ci kulcsösszehasonlítások száma az i-edik szitálás során legfeljebb i-1, legalább 1; Ha feltételezzük, hogy N kulcs minden permutációja egyformán valószínű, akkor az összehasonlítások átlagos száma = i/2. Az átszállások száma Mi=Ci+3 (beleértve a sorompót is). A minimális becslések már rendezett kezdeti elemek sorozata esetén fordulnak elő, míg a legrosszabb becslések akkor, ha kezdetben fordított sorrendben vannak elrendezve. Bizonyos szempontból a befogadó rendezés valóban természetes viselkedést mutat. Jól látható, hogy a fenti algoritmus a stabil rendezés folyamatát írja le: az egyenlő kulcsú elemek sorrendje változatlan marad.

Az összehasonlítások száma a legrosszabb esetben, amikor a tömb ellentétes sorrendben van rendezve, C max = n(n - 1)/2, azaz - O (n 2). Permutációk száma M max = C max + 3(n-1), azaz. - O (n 2). Ha a tömb már rendezve van, akkor az összehasonlítások és permutációk száma minimális: C min = n-1; M min = 3(n-1).

Rendezés közvetlen cserével (buborékos rendezés)

BAN BEN ez a szekció olyan módszert írunk le, ahol két elem helycseréje a folyamat jellemző jellemzője. Az alábbiakban felvázolt közvetlen csere algoritmus egy pár helyének összehasonlításán és megváltoztatásán alapul szomszédos elemekés ezt a folyamatot addig folytatva, amíg az összes elem rendben nem lesz.

Megismételjük az áthaladást a tömbön, minden alkalommal a maradék sorozat legkisebb elemét mozgatva a tömb bal végére. Ha a tömböket inkább függőlegesnek, mint vízszintesnek tekintjük, akkor az elemek egy víztartályban lévő buborékokként értelmezhetők, amelyek súlya a kulcsának felel meg. Ebben az esetben minden lépésnél egy buborék a súlyának megfelelő szintre emelkedik (lásd az alábbi ábrán látható ábrát).

C min = n - 1, O(n) sorrend,

és egyáltalán nincs mozgás

A közvetlen válogatási módszerek összehasonlító elemzése azt mutatja, hogy a csere „válogatás” klasszikus formájában a zárványok felhasználásával történő válogatás és a szelekció keresztezése. Ha a fenti fejlesztéseket bevezetjük benne, akkor kellően rendezett tömböknél buborék fajta sőt előnye is van.

Ezt a módszert buborékos válogatásnak nevezik.


Közvetlen cseremódszer algoritmus

j = n-től i-ig -1. lépés

ha a(j)< a(j - 1) then

A mi esetünkben egy üres passzal végeztünk. Annak érdekében, hogy ne nézzük át még egyszer az elemeket, és ezért összehasonlításokat végezhessünk, szánjunk erre időt, beírhatunk egy jelölőnégyzetet. fl, ami értékben marad hamis, ha a következő menet során nem történik csere. Az alábbi algoritmusban a kiegészítések félkövérrel vannak jelölve.

fl = igaz

ha fl = false, akkor térjen vissza

fl = hamis

j = n-től i-ig -1. lépés

ha a(j)< a(j - 1) then

fl = igaz

A buborékos módszer továbbfejlesztése a rázós szortírozás, ahol minden egyes áthaladás után megváltozik az irány a belső hurokban.

A közvetlen csere rendezési algoritmus hatékonysága

Összehasonlítások száma C max = n(n-1)/2, O(n 2) sorrend.

Mozgások száma M max =3C max =3n(n-1)/2, O(n 2) sorrend.

Ha a tömb már rendezve van és a zászlóval ellátott algoritmust használjuk, akkor elég egy lépés, és akkor megkapjuk a minimális számú összehasonlítást

Ezt a módszert széles körben használják kártyázáskor. Az elemek (kártyák) gondolatban a már „kész” A1 ... An sorozatra és az eredeti Ai ... An sorozatra vannak osztva. Minden lépésnél, i=2-től kezdve és I-t minden alkalommal eggyel növelve, az i-edik elemet kiemeljük az eredeti sorozatból és átvisszük a kész sorozatba, és beillesztjük a megfelelő helyre.

A fenti példa a rendezés folyamata nyolc véletlenszerűen kiválasztott szám felvételével: Ennek a rendezésnek az algoritmusa a következő:

FOR i:=2 TO n DO

x szerepeltetése a megfelelő helyen egy ... a[j] között;

A megfelelő hely keresésének valódi folyamatában kényelmes, váltakozó összehasonlítások és mozgások a sorozaton keresztül, átszitáljuk X-et, azaz X-et összehasonlítjuk a következő aj elemmel, majd vagy X-et illesztünk be szabad hely, vagy aj jobbra tolódik (átküldődik), és a folyamat balra „megy”. Kérjük, vegye figyelembe, hogy a szitálási folyamat véget érhet, ha az alábbi két különböző feltétel egyike teljesül:

1. Találtunk egy aj elemet, amelynek kulcsa kisebb, mint X kulcsa.

2. Elérte a kész sorozat bal végét.

Ez a tipikus esete az ismétlődő folyamatnak két befejezési feltétellel, lehetővé teszi a jól ismert barrier technika (sentinel) alkalmazását. Itt egyszerűen alkalmazható az a0 gát X értékű beállításával. (Megjegyzendő, hogy ehhez az a változó leírásában az index tartományát 0 ... n-re kell bővíteni.)

A közvetlen befogadás módszerének elemzése. A kulcsösszehasonlítások száma (Ci) az i-edik szitálás során legfeljebb i - 1, legalább 1; Ha feltételezzük, hogy n kulcs minden permutációja egyformán valószínű, akkor az összehasonlítások átlagos száma i/2. Az átvitelek (elemek hozzárendelése) száma Mi egyenlő Ci + 2-vel (beleértve az akadályt is). Ezért teljes szám az összehasonlítások és az átutalások száma a következő:

Mentés = (n2 + n - 2)/4,

Сmax = (n2 + n - 4)/4,

M min = З*(n - 1),

M ave = (n2 + 9n - 10)/4,

M max = (n2 + 3n - 4)/2.

A minimális becslések már rendezett kezdeti elemek sorozata esetén fordulnak elő, míg a legrosszabb becslések akkor, ha kezdetben fordított sorrendben vannak elrendezve. Bizonyos szempontból a befogadó rendezés valóban természetes viselkedést mutat. Jól látható, hogy a fenti algoritmus a stabil rendezés folyamatát írja le: az egyenlő kulcsú elemek sorrendje változatlan marad.

A közvetlen zárványokkal rendelkező algoritmus könnyen javítható, ha odafigyel arra, hogy a kész sorozat (a1 ... ai-1, amelybe be kell illesztenie új elem, maga már meg van rendelve. Természetes, hogy beállunk a bináris keresésre, mely során a kész sorozat közepével próbálunk összehasonlítani, majd a felezési folyamat addig folytatódik, amíg meg nem találjuk a befogadási pontot. Ezt a módosított rendezési algoritmust bináris beillesztési módszernek nevezik.