Előadás rendezés

A rendezés az egyik legösszetettebb és legfontosabb tanulási algoritmus.

Először is, a válogatás számos számítógépes alkalmazás közös feladata. Gyakorlatilag minden lista értékesebb, ha egy bizonyos elv alapján rendezik.

Másodszor, sok rendezési algoritmus a programozás érdekes példái, amelyek fontos módszereket mutatnak: magánrendelés, rekurzió, listák kombinálása, bináris fák megtakarítása tömbökben.

Minden rendezési algoritmusnak előnyei és hátrányai vannak. A különböző algoritmusok teljesítménye az adattípustól, kezdeti helytől, mérettől és értékektől függ. Fontos kiválasztani az algoritmust, amely egy adott feladathoz legjobban megfelel.

A rendezés egyike azon kevés feladatoknak, amelyek pontos elméleti teljesítményhatárokkal rendelkeznek. Bármely rendezési algoritmus, amely összehasonlításokat használ, legalább O (N * logN) időt vesz igénybe.

Rendezés a választás szerint

Válogatás szerinti választás egyszerű O (N 2) algoritmus. Feladata, hogy megkeresse a legkisebb elemet, amely az elemek elejétől kezdve a lista elejére vált. Ezután a fennmaradó elemek és a helyváltoztatások a második elemből származnak. A folyamat mindaddig folytatódik, amíg az összes elem el nem éri a végső pozícióját.

A legkisebb a7 = 1 elem van definiálva

Az első 1 4 5 3 10 8 2 helyek megváltoztatása

A többiek ismét keresik a minimális értéket és a második 1 2 5 3 10 8 4 változást

1 2 3 5 10 8 4 1 2 3 4 10 8 5 1 2 3 4 5 8 10 1 2 3 4 5 8 10

Ennek az algoritmusnak a végrehajtásához beágyazott For hurokra van szükség. A külső hurok (onI) a tömb elemek egymás utáni rögzítésére szolgál, belső (onJ) - a minimális (maximális) és pozícióját keresi. A belső hurok kilépése után az elemeket át kell alakítani. A külső ciklus utolsó elemét nem veszik figyelembe: ő maga fogja elfoglalni helyét.

Az i-edik legkisebb elem keresésekor az algoritmusnak ellenőriznie kell az N-megmaradt elemek mindegyikét. Az algoritmus végrehajtási ideje N + (N-1) + (N-2) + ... + 1 vagy O (N 2).

A választás szerinti választás jól működik olyan listákkal, ahol az elemek véletlenszerűen elrendezve vagy közvetlen sorrendben vannak, de a rendezett listák esetében ez az algoritmus teljesítménye valamivel rosszabb. A lista minimális elemének kereséséhez a kiválasztást a következő operátorok sorozata végzi el:

Ha a (j)

Ha a listát sorrendben rendezzük el, az a (j)

Ez nem a leggyorsabb algoritmus, de nagyon egyszerű, és gyorsan kicsi listákat rendez.

Illessze be a válogatást

A beszúrási rendezés egy másik O (N2) komplexitású algoritmus. Ez a részegység töredékének rendezett részében végrehajtott végrehajtáson alapul, ha megfelel a rendezési feltételnek. Az algoritmus növekvő sorrendben néz a forráslistára, és megkeresi azt a helyet, ahol új elemet szeretne beilleszteni. Ezután az új elemet a talált pozícióba helyezi.

Az első lépésben a második elemet az elsőhöz, a másodikhoz - a harmadik elemhez hasonlítjuk össze az első és a második, és így tovább. Ha az ellenőrzött i + 1-es elem megfelel az elemek szerinti rendezési körülménynek, a sorrendbe zavarás nélkül beilleszti a j-os helyre. elemek indexekkel> = j és <=i-1 увеличивают свой индекс на 1.

Előadás rendezés

I = 2 és n 'összehasonlítást mindig kezdődik b = a (i): j = 1' az első Do Míg b> a (j) 'határozza meg a száma j = j + 1' behelyezésére hurok k = i-től j + 1 lépés: -1 'kiadott egy (k) = a (k - 1) „, ahol szúrni Következő ka (j) = b' hajtjuk inszertálására l = 1-től n Picture2.Print egy (L); ""; Következő Picture2.Print Következő I End Sub

Az átmenetek teljes száma n-1.

Az ilyen algoritmus rengeteg időt tölt, hogy megtalálja a megfelelő pozíciót egy új elemhez. Gyorsabb a választásnál.

Bubble sorting

A buborék szortírozása olyan algoritmus, amely olyan rendezéseket tervez, amelyek már szinte rendezett állapotban vannak. Ha ez a feltétel teljesül, akkor az algoritmus nagyon gyorsan végrehajtódik, az O (N) sorrendben. Ha az elemek kezdetben tetszőleges sorrendben vannak elrendezve, az algoritmus végrehajtása (N2) lépésekben történik.

A buborék válogatásával a listát szkennelni kell addig, amíg két szomszédos elem meg nem jelenik. Helyeket váltanak, és a listát tovább vizsgálják. Az első lépés után a legkisebb elem jelenik meg először (növekvő sorrendben). A következő lépés az elem megkezdése előtt történik, pl. a tömb többi része rendezve van. Az algoritmus megismétli ezt a folyamatot, amíg nem rendezi az összes elemet.

Előadás rendezés

Előadás rendezés

Piramis válogatás (bináris fák)

A piramis egy teljes bináris fa, amelyben minden csomó nagyobb, mint két gyermeke. Mindkét gyermekcsomónak kisebbnek kell lennie, mint a szülő csomópont, de bármelyikük nagyobb lehet a másiknál. A gyökércsomópont mindig a legnagyobb a piramisban.

Bármely tömbet piramisként ábrázolhatunk, ha a tömb első elemét a piramis gyökerébe helyezjük.

Például 2 4 5 3 10 8 1

A piramis egyik csomópontjából kiinduló alfa is piramis.

Ennek felhasználásával építhet egy piramist az alulról felfelé. A három csomóponthoz tartozó mindegyik részrészlethez piramist kell létrehozni. Ehhez össze kell hasonlítani a felső csomópontot a két gyermeke között. Ha a gyermekcsomópontok közül bármelyik nagyobb, akkor a felső csomóponthoz kell módosítania. Ha mindkét gyermekcsomó nagyobb, akkor a szülői csomópontról a gyermekcsomópontok nagyobbikjára kell váltania. Ezt a lépést addig ismételjük, amíg az összes alfa nem piramis:

Ezután nagyobb piramisok jönnek létre: a kis 10-es és 8-as csúcsú piramisokat összekapcsolják a 2. elemrel.

Ennek eredményeképpen a piramis legmagasabb pontja a szekvencia legnagyobb eleme. Mi dobjuk ki a piramisból, és helyére tegyük a legalacsonyabb elemet az alsó szinten. És újra piramist építünk. A tetején a következő legnagyobb elemet kapjuk, és így tovább.

Kapcsolódó cikkek