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.

Buborék rendezés algoritmus egy egydimenziós tömböt c

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:

  1. Létrehozza a tömb méretét, kéri a felhasználót, hogy adjon meg egy numerikus értéket.
  2. Értékek töltse tömb felhasználó által beírt minden tömb elem.
  3. Jeleníti meg az eredeti tömb.
  4. Rendezi a tömb csökkenő sorrendben.
  5. 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.

Buborék rendezés algoritmus egy egydimenziós tömböt c

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:

  • Buborék rendezés algoritmus egy egydimenziós tömböt c
    Keresse meg a maximális és minimális eleme tömb C ++
  • Buborék rendezés algoritmus egy egydimenziós tömböt c
    Palindrom. Ellenőrizze, hogy egy szó, egy sor, ...
  • Buborék rendezés algoritmus egy egydimenziós tömböt c
    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] megváltoztatni a relációs jel itt a szemközti

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.