Giả sử có mảng các ngày tháng. Đây là cách sắp xếp chúng dùng C/C++. Ngày tháng lưu trong class (struct trong C). Sử dụng hàm sort của C++ STL. Cần viết hàm so sánh (compare) riêng cho ngày tháng.
Ví dụ
#include <iostream>
#include <algorithm>
using namespace std;
class Date {
public:
int d, m, y;
};
bool compare(const Date& date1, const Date& date2) {
if (date1.y < date2.y) return true;
if (date1.y == date2.y && date1.m < date2.m) return true;
if (date1.y == date2.y && date1.m == date2.m && date1.d < date2.d) return true;
return false;
}
void sortDateArray(Date arr[], int n) {
sort(arr, arr + n, compare);
}
int main() {
Date arr[] = {{20, 1, 2017}, {25, 3, 2010}, {3, 12, 1956},
{18, 10, 1982}, {19, 4, 2011}, {9, 7, 2013}};
int n = sizeof(arr) / sizeof(arr[0]);
sortDateArray(arr, n);
cout << "Cac ngay da sap xep:\n";
for (int i = 0; i < n; i++) {
cout << arr[i].d << " " << arr[i].m << " " << arr[i].y << endl;
}
return 0;
}
Kết quả đầu ra
Cac ngay da sap xep 3 12 1956 18 10 1982 25 3 2010 19 4 2011 9 7 2013 20 1 2017