Intern
Siyahı necə sıralamaq olar?
sobes.tech Süni İntellekt
AI-dan cavab
C++ dilində siyahını sıralamaq üçün aşağıdakı yanaşmalardan istifadə edə bilərsiniz:
- std::sort: Standart kitabxanadan iterativ algoritm.
- std::list::sort:
std::listüçün sıralama metodu, bu metod elementlərə istinadlar istifadə edir, iteratorlar deyil.
Müqayisə:
| Metod | Tətbiq olunur | Çətinlik | Əlavə yaddaş | Sabitlik | Xüsusiyyətlər |
|---|---|---|---|---|---|
std::sort |
Təsadüfi giriş (məsələn, std::vector, std::deque) |
$O(N \log N)$ | $O(\log N)$ (orta hesabla) | Sabit deyil | std::list üçün səmərəsiz, çünki yavaş təsadüfi girişə malikdir. |
std::list::sort |
std::list |
$O(N \log N)$ | $O(1)$ | Sabit | std::list üçün effektiv, çünki elementlərin köçürülməsini tələb etmir. |
std::list::sort istifadə nümunəsi:
#include <list>
#include <iostream>
int main() {
std::list<int> siyahim = {5, 2, 8, 1, 9};
// Artan sıralama
siyahim.sort();
for (int dəyər : siyahim) {
std::cout << dəyər << " ";
}
std::cout << std::endl;
// Azalan sıralama, müqayisəçi istifadə edərək
siyahim.sort([](int a, int b){ return a > b; });
for (int dəyər : siyahim) {
std::cout << dəyər << " ";
}
std::cout << std::endl;
return 0;
}