Sobes.tech
Intern

Чӣ гуна метавон рӯйхатро тақсим кард?

sobes.tech AI

Ҷавоб аз AI

Барои сарт кардани рӯйхат дар C++, шумо метавонед ба усулҳои зерин муроҷиат кунед:

  1. std::sort: Алгоритми такрорӣ аз китобхонаи стандартӣ.
  2. 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;
}