Sobes.tech
Intern

Hogyan lehet rendezni egy listát?

sobes.tech MI

Válasz az MI-től

A C++-ban egy lista rendezéséhez a következő megközelítéseket használhatja:

  1. std::sort: A standard könyvtár iteratív algoritmusa.
  2. std::list::sort: A std::list rendezési módszere, amely az elemekre mutató hivatkozásokat használ, nem iterátorokat.

Összehasonlítás:

Módszer Alkalmazható Komplexitás További memória Stabilitás Jellemzők
std::sort Véletlenszerű hozzáférés (pl. std::vector, std::deque) $O(N \log N)$ $O(\log N)$ (átlagosan) Nem stabil A std::list esetén nem hatékony a lassú véletlenszerű hozzáférés miatt.
std::list::sort std::list $O(N \log N)$ $O(1)$ Stabil Hatékony a std::list esetén, mivel nem igényel elemek mozgatását.

A std::list::sort használatának példája:

#include <list>
#include <iostream>

int main() {
    std::list<int> listam = {5, 2, 8, 1, 9};
    
    // Növekvő sorrend
    listam.sort();
    
    for (int érték : listam) {
        std::cout << érték << " ";
    }
    std::cout << std::endl;

    // Csökkenő sorrend, összehasonlítóval
    listam.sort([](int a, int b){ return a > b; }); 

    for (int érték : listam) {
        std::cout << érték << " ";
    }
    std::cout << std::endl;

    return 0;
}