Sign in
or
Register
Courses
Textbook
Compiler
Contests
Topics
Computer Science. Textbook
C++. Cấu trúc dữ liệu động
Sắp xếp với bộ so sánh
Sắp xếp bằng bộ so sánh
Một vectơ (giống như một mảng) có thể được sắp xếp bằng hàm
sort()
. Nhưng hàm này sắp xếp theo thứ tự tăng dần theo mặc định. Để sắp xếp một mảng theo một thứ tự khác, bạn cần sử dụng cái gọi là
bộ so sánh
- một hàm thiết lập thứ tự sắp xếp bằng cách so sánh hai đối tượng .
Ví dụ
Một ví dụ về bộ so sánh sắp xếp các phần tử của một mảng theo thứ tự tăng dần.
bool cmp(int thứ nhất, int thứ hai) { quay lại đầu tiên < thứ hai; }
và sắp xếp vectơ
A
bằng bộ so sánh đã tạo:
sắp xếp(A.begin(), A.end(), cmp);
Nghĩ về trình vòng lặp
Theo điều kiện của vấn đề, rõ ràng là cần phải áp dụng sắp xếp
stable
(ổn định), do đó, thay vì sắp xếp, nên sử dụng stable_sort.
bạn cũng có thể chỉ định một đối tượng hàm làm bộ so sánh mà bạn có thể tạo trước khi gọi hàm sắp xếp.
Ví dụ:
cấu trúc
{
bool
toán tử
()(
int
a,
int
b)
const
{
return
a
<
b; } }cmp;