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; }
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
#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; }
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!