Nên sử dụng thuật toán sắp xếp nào khi làm bài thi?

19
Lập trình C++

Trong quá trình tham gia thi học sinh giỏi. Nếu sử dụng Pascal bạn cần phải thành thạo các thuật toán sắp xếp, đặc biệt là thuật toán Quick Sort (một thuật toán có thể  gọi là nhanh nhất).

Tuy nhiên, khi sử dụng ngôn ngữ C++, bạn không nên sử dụng các thuật toán sắp xếp làm gì vì C++ đã có sẵn thư viện algorithm có thuật toán sắp xếp (còn chạy nhanh hơn cả Quick Sort, vì nhà phát triển ứng dụng đã tính toán và xây dựng hàm này rất chuẩn rồi).

Trừ khi đề bài yêu cầu phải dùng thuật toán nào đó để sắp xếp thì khi đó bạn mới nên sử dụng các thuật toán nổi tiếng đã được các lập trình viên trên thế giới xây dựng.

Dưới đây là code tham khảo cho bạn về việc lấy dữ liệu từ file SORT.INP, sử dụng hàm sắp xếp sort trong thư viện algorithm có sẵn để thực hiện việc sắp xếp tăng hoặc sắp xếp giảm và ghi lại vào file SORT.OUT:

#include <iostream>
#include <algorithm>
using namespace std;
int main() {
    int n;
    int a[1000];
    freopen("SORT.INP","r",stdin);
    freopen("SORT.OUT","w",stdout);
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    // sap xep tang:
    sort(a, a + n);
    for (int i = 0; i < n; i++) {
        cout << a[i] << "  ";
    }
    cout << endl;
    // Sap xep giam:
    sort(a, a + n, greater<int>());
    for (int i = 0; i < n; i++) {
        cout << a[i] << "  ";
    }
    return 0;
}