Sobes.tech
Intern

Ro'yxatni qanday tartiblash mumkin?

sobes.tech AI

AIdan javob

C++ tilida ro'yxatni saralash uchun quyidagi yondashuvlarni ishlatishingiz mumkin:

  1. std::sort: Standart kutubxonadan iteratsiyali algoritm.
  2. std::list::sort: std::list uchun saralash metodi, u elementlarga referenslar ishlatadi, iteratorlar emas.

Taqqoslash:

Metod Qo'llaniladi Murakkablik Qo'shimcha xotira Barqarorlik Xususiyatlar
std::sort Tasodifiy kirish (masalan, std::vector, std::deque) $O(N \log N)$ $O(\log N)$ (o'rtacha) Barqaror emas std::list uchun samarali emas, chunki sekin tasodifiy kirish.
std::list::sort std::list $O(N \log N)$ $O(1)$ Barqaror std::list uchun samarali, chunki elementlarni ko'chirish shart emas.

std::list::sort dan foydalanish misoli:

#include <list>
#include <iostream>

int main() {
    std::list<int> mening_ro'yxat = {5, 2, 8, 1, 9};
    
    // O'sish bo'yicha saralash
    mening_ro'yxat.sort();
    
    for (int qiymat : mening_ro'yxat) {
        std::cout << qiymat << " ";
    }
    std::cout << std::endl;

    // Ortish bo'yicha saralash, taqqosuvchi yordamida
    mening_ro'yxat.sort([](int a, int b){ return a > b; }); 

    for (int qiymat : mening_ro'yxat) {
        std::cout << qiymat << " ";
    }
    std::cout << std::endl;

    return 0;
}