quicksort

Üdvözlöm, Ön a quicksort szó jelentését keresi. A DICTIOUS-ban nem csak a quicksort 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 quicksort szót egyes és többes számban mondani. Minden, amit a quicksort szóról tudni kell, itt található. A quicksort szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Aquicksort é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

quicksort (tsz. quicksorts)

  1. (informatika) gyorsrendezés

Itt egy egyszerű és érthető implementációja a quicksort algoritmusnak C++-ban, magyar nyelvű kommentekkel magyarázva:

Példa (C++11):

#include <iostream>
#include <vector>

// Partíció függvény
int particio(std::vector<int>& tomb, int bal, int jobb) {
    int pivot = tomb;  // Pivot elem kiválasztása
    int i = bal - 1;

    for (int j = bal; j <= jobb - 1; ++j) {
        if (tomb <= pivot) {
            ++i;
            std::swap(tomb, tomb); // Csere, ha kisebb vagy egyenlő a pivotnál
        }
    }

    std::swap(tomb, tomb);  // Pivot elem a helyére kerül
    return (i + 1);
}

// Quicksort rekurzív függvény
void quicksort(std::vector<int>& tomb, int bal, int jobb) {
    if (bal < jobb) {
        int pivot_index = particio(tomb, bal, jobb);

        quicksort(tomb, bal, pivot_index - 1);  // Bal oldali rész rendezése
        quicksort(tomb, pivot_index + 1, jobb); // Jobb oldali rész rendezése
    }
}

// Segédfüggvény a quicksort hívására
void quicksort(std::vector<int>& tomb) {
    quicksort(tomb, 0, tomb.size() - 1);
}

int main() {
    std::vector<int> tomb = {45, 12, 78, 34, 23, 89, 5, 67};

    std::cout << "Rendezes elott:\n";
    for (const auto& elem : tomb)
        std::cout << elem << " ";
    std::cout << "\n";

    quicksort(tomb);

    std::cout << "Rendezes utan (quicksort):\n";
    for (const auto& elem : tomb)
        std::cout << elem << " ";
    std::cout << "\n";

    return 0;
}

Hogyan működik a quicksort?

  1. Pivot kiválasztása

Kiválaszt egy ún. pivot elemet (ebben az implementációban ez a tömb utolsó eleme).

  1. Particionálás

Átrendezi a tömböt úgy, hogy a pivotnál kisebb elemek balra, a nagyobbak jobbra kerüljenek.

  1. Rekurzív rendezés

Rekurzívan rendezi a pivot bal és jobb oldalát.



Algoritmikus komplexitás:

  • Átlagos eset: O(N log N)
  • Legrosszabb eset: O(N²)
  • Legjobb eset: O(N log N)

A gyakorlatban a quicksort általában gyors és hatékony, és az egyik leggyakrabban használt rendező algoritmus.