Intern
Чӣ гуна метавон рӯйхатро тақсим кард?
sobes.tech AI
Ҷавоб аз AI
Барои сарт кардани рӯйхат дар C++, шумо метавонед ба усулҳои зерин муроҷиат кунед:
- std::sort: Алгоритми такрорӣ аз китобхонаи стандартӣ.
- std::list::sort: Метод барои сарт кардан барои
std::list, ки ба ҷойи итераторҳо, ба истинодҳо ба унсурҳо истифода мебарад.
Мувофиқат:
| Метод | Ба чӣ истифода мешавад | Сложность | Иловаи хотира | Таҳаммулпазирӣ | Хусусиятҳо |
|---|---|---|---|---|---|
std::sort |
Дастрасии тасодуфӣ (масалан, std::vector, std::deque) |
$O(N \log N)$ | $O(\log N)$ (дар миёна) | Нестабиль | Барои std::list самаранок нест, зеро дастрасии тасодуфӣ суст аст. |
std::list::sort |
std::list |
$O(N \log N)$ | $O(1)$ | Таҳаммулпазир | Самаранок барои std::list, зеро талаб намекунад ҳаракат додани унсурҳоро. |
Маслиҳат барои истифодаи std::list::sort:
#include <list>
#include <iostream>
int main() {
std::list<int> рӯйхати_ман = {5, 2, 8, 1, 9};
// Сарт кардани ба рӯйхати рӯйи боло
рӯйхати_ман.sort();
for (int арзиш : рӯйхати_ман) {
std::cout << арзиш << " ";
}
std::cout << std::endl;
// Сарт кардани ба рӯйи поён бо истифода аз муқоисакор
рӯйхати_ман.sort([](int a, int b){ return a > b; });
for (int арзиш : рӯйхати_ман) {
std::cout << арзиш << " ";
}
std::cout << std::endl;
return 0;
}