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:
- std::sort: A standard könyvtár iteratív algoritmusa.
- std::list::sort: A
std::listrendezé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;
}