cocktail shaker sort

Üdvözlöm, Ön a cocktail shaker sort szó jelentését keresi. A DICTIOUS-ban nem csak a cocktail shaker sort szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a cocktail shaker sort szót egyes és többes számban mondani. Minden, amit a cocktail shaker sort szóról tudni kell, itt található. A cocktail shaker sort szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Acocktail shaker sort és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Főnév

cocktail shaker sort (tsz. cocktail shaker sorts)

  1. (informatika) A Cocktail Shaker Sort (más néven: Bidirectional Bubble Sort, Cocktail Sort, vagy Shuttle Sort) egy egyszerű, de kevéssé hatékony rendezési algoritmus, amely a Bubble Sort továbbfejlesztett változata.



🧪 TL;DR – Röviden

  • Típus: Összehasonlítás-alapú, in-place, nem stabil rendezés
  • Működés: Buborékrendezés oda-vissza irányban
  • Időbonyolultság:
    • Legrosszabb eset:
    • Legjobb eset (rendezett tömb):
  • Memóriaigény:



🧠 Miért „koktélrázó”?

Az algoritmus a lista elején előrefelé halad, majd visszafelé, mint egy koktélrázó mozgása — innen a név.



⚙️ Működési elv

  1. Előrefelé: A legnagyobb elemet „felbuborékoltatja” a végére.
  2. Hátrafelé: A legkisebb elemet „lesüllyeszti” az elejére.
  3. Határok szűkítése: Minden iteráció után csökkenti a vizsgált tartományt.
  4. Addig ismétli, amíg nincs több csere → a tömb rendezett.



📊 Példa

Kezdet:

  • Előre:
  • Vissza:
  • Előre:
  • Vissza: nincs változás → kész.



📄 C++ Implementáció

void cocktailShakerSort(std::vector<int>& arr) {
    bool swapped = true;
    int start = 0;
    int end = arr.size() - 1;

    while (swapped) {
        swapped = false;

        // Előrefelé buborékolás
        for (int i = start; i < end; ++i) {
            if (arr > arr) {
                std::swap(arr, arr);
                swapped = true;
            }
        }

        if (!swapped) break;

        swapped = false;
        --end;

        // Visszafelé buborékolás
        for (int i = end - 1; i >= start; --i) {
            if (arr > arr) {
                std::swap(arr, arr);
                swapped = true;
            }
        }

        ++start;
    }
}

📈 Időbonyolultság

Eset Időbonyolultság
Legjobb (rendezett)
Átlagos
Legrosszabb
Térigény in-place



✅ Előnyök

  • Könnyen implementálható
  • Jobb, mint sima Bubble Sort részben rendezett tömbök esetén
  • Korán felismeri, ha kész a tömb (optimalizáció)



❌ Hátrányok

  • Lassú nagy tömböknél
  • Nem versenyképes a modern algoritmusokkal (pl. Quicksort, Mergesort)
  • Nem stabil (egyenlő elemek sorrendje változhat)



🔍 Mikor használjuk?

  • Oktatási célokra, algoritmusok szemléltetésére
  • Ha egyszerűség fontos, nem a teljesítmény
  • Kisebb tömbök vagy majdnem rendezett listák esetén



📚 Összefoglalás

A Cocktail Shaker Sort egy kétirányú Bubble Sort, amely oda-vissza rendezi a tömböt minden iterációban. Bár nem hatékony nagy adathalmazokkal, szemléletes és könnyen megérthető algoritmus.