Bagaimana untuk membandingkan menggunakan algoritma pengisihan dalam C++

WBOY
Lepaskan: 2023-09-20 10:57:27
asal
1066 orang telah melayarinya

Bagaimana untuk membandingkan menggunakan algoritma pengisihan dalam C++

Perbandingan menggunakan algoritma pengisihan dalam C++

Algoritma pengisihan ialah salah satu algoritma yang paling asas dan biasa digunakan dalam sains komputer. Dalam pengaturcaraan, kita selalunya perlu mengisih set data untuk menyusun dan memproses data dengan lebih baik. C++ menyediakan pelbagai fungsi perpustakaan algoritma pengisihan, seperti std::sort dan std::stable_sort. Artikel ini akan memperkenalkan cara menggunakan algoritma pengisihan dalam C++ untuk perbandingan dan memberikan contoh kod khusus.

1. Penggunaan fungsi std::sort

std::fungsi sort ialah fungsi pengisihan yang biasa digunakan dalam perpustakaan standard C++. Ia boleh mengisih data dalam tatasusunan atau bekas. Berikut ialah prototaip fungsi fungsi std::sort:

template
void sort (RandomAccessIterator first, RandomAccessIterator last

Berikut ialah contoh kod untuk mengisih: :

#include <iostream>
#include <algorithm>
#include <vector>
 
int main() {
    // 创建一个整数数组
    std::vector<int> arr = {5, 2, 9, 1, 8};
 
    // 使用std::sort函数对数组进行排序
    std::sort(arr.begin(), arr.end());
 
    // 输出排序后的数组
    for (int num : arr) {
        std::cout << num << " ";
    }
 
    return 0;
}
Salin selepas log masuk

Dalam Dalam kod di atas, kita mula-mula mencipta arr tatasusunan integer, dan kemudian gunakan fungsi std::sort untuk mengisih tatasusunan. Akhir sekali, kami mengulangi tatasusunan dan mengeluarkan hasil yang disusun.

2. Penggunaan fungsi std::stable_sort

std::stable_sort juga merupakan fungsi pengisihan dalam perpustakaan standard C++ Perbezaan daripada fungsi std::sort ialah fungsi std::stable_sort boleh mengekalkan dua sama. susunan unsur. Berikut ialah prototaip fungsi fungsi std::stable_sort:

template
void stable_sort (RandomAccessIterator dahulu, RandomAccessIterator terakhir

menggunakan fungsi penyisihan kod: yang berikut ialah: :

#include <iostream>
#include <algorithm>
#include <vector>
 
int main() {
    // 创建一个结构体数组
    struct Person {
        std::string name;
        int age;
    };
 
    std::vector<Person> people = {
        {"Alice", 20},
        {"Bob", 18},
        {"Carol", 22},
        {"David", 20}
    };
 
    // 使用std::stable_sort函数对结构体数组按照年龄进行排序
    std::stable_sort(people.begin(), people.end(), [](const Person& a, const Person& b) {
        return a.age < b.age;
    });
 
    // 输出排序后的结果
    for (const Person& p : people) {
        std::cout << p.name << " " << p.age << std::endl;
    }
 
    return 0;
}
Salin selepas log masuk
Dalam Dalam kod di atas, kami mencipta orang tatasusunan struktur, setiap elemen mengandungi nama dan umur seseorang. Kemudian, kami menggunakan fungsi std::stable_sort untuk mengisih tatasusunan struktur mengikut umur. Semasa mengisih, kami menggunakan ungkapan lambda untuk menentukan perbandingan berdasarkan ahli umur struktur Orang. Akhir sekali, kami mengulangi tatasusunan dan mengeluarkan hasil yang disusun.

Ringkasan:

Dalam artikel ini, kami memperkenalkan cara menggunakan algoritma pengisihan dalam C++ untuk perbandingan dan memberikan contoh kod khusus. Dengan menguasai dan menggunakan algoritma pengisihan secara fleksibel dalam C++, anda boleh menyusun dan memproses data dengan lebih baik serta meningkatkan kecekapan dan prestasi program. Saya harap artikel ini akan membantu anda untuk belajar dan berlatih.

Atas ialah kandungan terperinci Bagaimana untuk membandingkan menggunakan algoritma pengisihan dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan