Buborék rendezés algoritmus egy egydimenziós tömböt c
Szia kedves vendég. Ebben a cikkben azt fogja mondani, a rendezési algoritmusnak tömböt a buborék.
Array elemeket, mint a buborékok
Bubble sort algoritmus - elég könnyen megvalósítható algoritmus válogatás tömbök. Lehet, hogy más nevek: buborék rendezés. Buble egyfajta válogatás vagy egyszerű csere - de ők oboznochat ugyanazt az algoritmust. Így nevezték, mert egy nagyobb vagy kisebb értéke „POP” (eltolt) a szélén a tömb minden iteráció után, akkor látható, a példában.
Ez egy összetett algoritmus által kifejezett O (n ^ 2) (n 2 hatványa). Az algoritmus lassú, nagy tömbök, és ezért nem hatékony, és a gyakorlatban ritkán használják. Gyakran képzési célokra. Válogató tömbök gyakorlatban felhasználása más gyorsabb algoritmusok, egyikük - quicksort (gyorskeresés). Válogató Gyors funkció szerepel számos szabványos könyvtárban programozási nyelvek, mint a C nyelv funkció qsort () a standard könyvtár.
Az algoritmus működése rendkívül egyszerű. A program megy keresztül az összes elemet a tömb érdekében. Minden egyes elem képest a jelenlegi szomszédos, és ha ez alacsonyabb / magasabb (ha a fajta csökkenő / növekvő sorrendben) cserélnek a szomszédos.
Példa munka buborék rendezési algoritmus
Tekintsük a példát az algoritmus egy tömb, ami négy elem.
Vannak array [4, 5, 2, 6]. Rendezés lesz csökkenő.
N - elemek száma a tömbben. i - át számát. Az algoritmus teszi a tömb a még, az összes részeket N-1 és N-i minden cella a tömb minden egyes iteráció.
Az első lépés az első ciklus, hogy az N-1 elemek, az összehasonlítás állapot és a változás helyek esetében az elégedettség a feltételek -, ha a bal oldali elem kisebb, mint a jobb.
Összehasonlítás 4. és 5, 4 kisebb, mint 5, és így mi őket cserélnek.
Összehasonlítás 4 és 2, 4 nem kevesebb, mint 2, és így hiányzik, és kész.
Összehasonlítása 2 és 6, 4 kevesebb, mint 6, így már nekik helyet cserélnek.
Most van egy tömb [5, 4, 6, 2]. Mint látható, ez még mindig nem elrendelte, hogy a végén. Miután az első lépésben, a végén a tömb elmozdult nagyon kis érték, most kell, hogy egy másik labdát, hogy az N-2 (miután az összes, a második iteráció) elem.
Tesszük az átmenetet az első elemet.
Összehasonlítás 5 és 4, 5, legalább 4, és így hiányzik, és kész.
Összehasonlítjuk a 6. és a 4., 6., kevesebb, mint 4, és így mi változik helyüket. Elértük az elem N-2, kiegészítve iteráció.
Most van egy tömb [5, 6, 4, 2]. 2 utolsó eleme van elrendezve, ha szükséges. Ahhoz, hogy teljes a szükségességét, hogy végre egy másik labdát, hogy az N-3.
Összehasonlítás 5. és 6, 5 kevesebb, mint 6, így már nekik helyet cserélnek. Elértük az elem N-3, akkor a teljes iteráció.
Ennek eredményeként, a kimenet van egy sor csökkenő sorrendbe rendezve - [6, 5, 4, 2].
A végrehajtás az algoritmus C ++ nyelven
A program elvégzi a következő lépések:
- Létrehozza a tömb méretét, kéri a felhasználót, hogy adjon meg egy numerikus értéket.
- Értékek töltse tömb felhasználó által beírt minden tömb elem.
- Jeleníti meg az eredeti tömb.
- Rendezi a tömb csökkenő sorrendben.
- Jeleníti rendezett tömböt.
Most a tényleges kódot minden egyes tételt.
1. állapítsa és inicializálja a változó adatokat a felhasználó által megadott, annak értékét.
Megjegyzés. használó orosz karaktereket, ha hibátlanul megjeleníteni a kódot, majd olvassa el a cikket a probléma a kijelzőn az orosz karakterek a konzolon.
Az írás egy program befejezése, és most ellenőrizze az eredményt. És erre a célra bemutatjuk a program tömb rendezési amely tettünk, figyelembe véve a példát az algoritmus egy kicsit korábban ebben a cikkben.
Miután az adatok bevitele és a program megvan az eredmény.
Az eredmény a válogatás tömböt buborék
Mint látható a képen, a tömb csökkenő sorrendben. A program működik.
Mint azt már korábban említettük, az algoritmus nagyon lassú, nagy mennyiségű adatot, és ezért alkalmatlan a gyakorlatban, és alkalmas csak a képzési és oktatási célokra. Nézd meg a többi feladat a programozás során.
Érdekes lehet az Ön számára:
- Keresse meg a maximális és minimális eleme tömb C ++
- Palindrom. Ellenőrizze, hogy egy szó, egy sor, ...
- Program megoldására másodfokú egyenlet C ++
Hozzászólás navigáció
Mindenütt ez vonatkozik, de ez rosszabb, mint a sebesség más. Meséld gyorsrendezés, hasznos lesz 🙂
Igen, valóban, ez rosszabb, mint a sebesség tovább. Gyorsrendezés terveket, a közeljövőben.
Hogyan lehet rendezni egy tömb növekvő?
ha a (tömeg [r]
EEEE
és hacsak nem nyilvánítja int mas [n].
ahol n - int n.
C ++ statikus tömb deklarált egyetlen állandó.
vagy úgy: int mas [10], például
vagy úgy:
const int n = 5;
int mas [n];
hogyan fordítottam.
Lehetőség van, a lényeg, hogy már pedig n.