20 bài tập thực hành về thuật toán sắp xếp

Lập trình C++

1. Sắp xếp điểm thi học sinh

  • Một giáo viên muốn sắp xếp danh sách điểm thi của học sinh theo thứ tự giảm dần để xác định học sinh xuất sắc nhất.
  • Dữ liệu đầu vào : [85, 92, 78, 90, 88]
  • Kết quả : [92, 90, 88, 85, 78]

2. Sắp xếp tên nhân viên theo thứ tự bảng chữ cái

  • Một công ty cần sắp xếp tên nhân viên theo thứ tự bảng chữ cái để tạo danh sách liên lạc.
  • Dữ liệu đầu vào : ["Alice", "Bob", "Charlie", "David", "Eve"]
  • Kết quả : ["Alice", "Bob", "Charlie", "David", "Eve"]

3. Sắp xếp sản phẩm theo giá tăng dần

  • Một cửa hàng trực tuyến muốn sắp xếp danh sách sản phẩm theo giá tăng dần để khách hàng dễ dàng lựa chọn.
  • Dữ liệu đầu vào : [1200, 500, 800, 1500, 700]
  • Kết quả : [500, 700, 800, 1200, 1500]

4. Sắp xếp thời gian hoàn thành dự án

  • Một quản lý dự án cần sắp xếp các dự án theo thời gian hoàn thành (ngày) để ưu tiên hoàn thành sớm.
  • Dữ liệu đầu vào : [30, 15, 45, 10, 20]
  • Kết quả : [10, 15, 20, 30, 45]

5. Sắp xếp số lượng đơn hàng theo doanh thu

  • Một công ty bán lẻ muốn sắp xếp các đơn hàng theo doanh thu giảm dần để phân tích hiệu quả kinh doanh.
  • Dữ liệu đầu vào : [5000, 3000, 8000, 2000, 7000]
  • Kết quả : [8000, 7000, 5000, 3000, 2000]

6. Sắp xếp độ tuổi người dùng

  • Một ứng dụng mạng xã hội muốn sắp xếp người dùng theo độ tuổi tăng dần để phân tích nhân khẩu học.
  • Dữ liệu đầu vào : [25, 30, 18, 40, 22]
  • Kết quả : [18, 22, 25, 30, 40]

7. Sắp xếp danh sách bài hát theo lượt nghe

  • Một nền tảng âm nhạc muốn sắp xếp bài hát theo số lượt nghe giảm dần để hiển thị top bài hát phổ biến.
  • Dữ liệu đầu vào : [12000, 8000, 15000, 5000, 9000]
  • Kết quả : [15000, 12000, 9000, 8000, 5000]

8. Sắp xếp mã hàng hóa theo thứ tự từ điển

  • Một kho hàng cần sắp xếp mã hàng hóa theo thứ tự từ điển để dễ dàng tìm kiếm.
  • Dữ liệu đầu vào : ["A001", "B002", "A003", "C001", "B001"]
  • Kết quả : ["A001", "A003", "B001", "B002", "C001"]

9. Sắp xếp khoảng cách giữa các địa điểm

  • Một dịch vụ giao hàng muốn sắp xếp các địa điểm theo khoảng cách tăng dần từ kho hàng.
  • Dữ liệu đầu vào : [5.5, 3.2, 8.1, 2.0, 4.7]
  • Kết quả : [2.0, 3.2, 4.7, 5.5, 8.1]

10. Sắp xếp số lượng bình luận trên bài viết

  • Một nền tảng blog muốn sắp xếp bài viết theo số lượng bình luận giảm dần để hiển thị bài viết nổi bật.
  • Dữ liệu đầu vào : [120, 80, 150, 50, 90]
  • Kết quả : [150, 120, 90, 80, 50]

11. Sắp xếp số lượng sản phẩm tồn kho

  • Một cửa hàng muốn sắp xếp sản phẩm theo số lượng tồn kho giảm dần để quản lý hàng hóa.
  • Dữ liệu đầu vào : [50, 20, 80, 10, 30]
  • Kết quả : [80, 50, 30, 20, 10]

12. Sắp xếp thời gian chạy của vận động viên

  • Một giải đấu thể thao muốn sắp xếp vận động viên theo thời gian chạy tăng dần để xác định người chiến thắng.
  • Dữ liệu đầu vào : [10.5, 9.8, 11.2, 10.0, 9.5]
  • Kết quả : [9.5, 9.8, 10.0, 10.5, 11.2]

13. Sắp xếp số lượng like trên bài đăng

  • Một nền tảng mạng xã hội muốn sắp xếp bài đăng theo số lượng like giảm dần để hiển thị bài nổi bật.
  • Dữ liệu đầu vào : [1200, 800, 1500, 500, 900]
  • Kết quả : [1500, 1200, 900, 800, 500]

14. Sắp xếp số lượng khách hàng theo khu vực

  • Một công ty muốn sắp xếp khu vực theo số lượng khách hàng giảm dần để phân bổ nguồn lực.
  • Dữ liệu đầu vào : [500, 300, 800, 200, 700]
  • Kết quả : [800, 700, 500, 300, 200]

15. Sắp xếp số lượng xe bán ra theo tháng

  • Một đại lý ô tô muốn sắp xếp số lượng xe bán ra theo tháng tăng dần để phân tích xu hướng.
  • Dữ liệu đầu vào : [120, 80, 150, 50, 90]
  • Kết quả : [50, 80, 90, 120, 150]

16. Sắp xếp số lượng học sinh theo lớp

  • Một trường học muốn sắp xếp số lượng học sinh theo lớp tăng dần để phân bổ giáo viên.
  • Dữ liệu đầu vào : [35, 40, 30, 45, 25]
  • Kết quả : [25, 30, 35, 40, 45]

17. Sắp xếp số lượng đơn hàng theo ngày

  • Một cửa hàng muốn sắp xếp số lượng đơn hàng theo ngày giảm dần để phân tích hiệu suất.
  • Dữ liệu đầu vào : [120, 80, 150, 50, 90]
  • Kết quả : [150, 120, 90, 80, 50]

18. Sắp xếp số lượng phòng trống theo khách sạn

  • Một hệ thống đặt phòng muốn sắp xếp khách sạn theo số lượng phòng trống giảm dần.
  • Dữ liệu đầu vào : [20, 15, 30, 10, 25]
  • Kết quả : [30, 25, 20, 15, 10]

19. Sắp xếp số lượng khách hàng tiềm năng

  • Một công ty tiếp thị muốn sắp xếp khách hàng tiềm năng theo mức độ quan tâm giảm dần.
  • Dữ liệu đầu vào : [50, 30, 80, 20, 70]
  • Kết quả : [80, 70, 50, 30, 20]

20. Sắp xếp số lượng sản phẩm lỗi

  • Một nhà máy muốn sắp xếp số lượng sản phẩm lỗi theo từng dây chuyền sản xuất tăng dần để cải thiện quy trình.
  • Dữ liệu đầu vào : [15, 10, 20, 5, 25]
  • Kết quả : [5, 10, 15, 20, 25]

Code tham khảo

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

// Hàm in mảng số nguyên
void printArray(const vector<int>& arr) {
    for (int num : arr) {
        cout << num << " ";
    }
    cout << endl;
}

// Hàm in mảng chuỗi
void printArray(const vector<string>& arr) {
    for (const string& str : arr) {
        cout << str << " ";
    }
    cout << endl;
}

// Hàm in mảng số thực
void printArray(const vector<double>& arr) {
    for (double num : arr) {
        cout << num << " ";
    }
    cout << endl;
}

int main() {
    // Bài 1: Sắp xếp điểm thi học sinh
    vector<int> scores = {85, 92, 78, 90, 88};
    sort(scores.begin(), scores.end(), greater<int>());
    cout << "Bai 1: " << endl;
    printArray(scores);

    // Bài 2: Sắp xếp tên nhân viên theo thứ tự bảng chữ cái
    vector<string> names = {"Alice", "Bob", "Charlie", "David", "Eve"};
    sort(names.begin(), names.end());
    cout << "Bai 2: " << endl;
    printArray(names);

    // Bài 3: Sắp xếp sản phẩm theo giá tăng dần
    vector<int> prices = {1200, 500, 800, 1500, 700};
    sort(prices.begin(), prices.end());
    cout << "Bai 3: " << endl;
    printArray(prices);

    // Bài 4: Sắp xếp thời gian hoàn thành dự án
    vector<int> projectTimes = {30, 15, 45, 10, 20};
    sort(projectTimes.begin(), projectTimes.end());
    cout << "Bai 4: " << endl;
    printArray(projectTimes);

    // Bài 5: Sắp xếp số lượng đơn hàng theo doanh thu
    vector<int> revenues = {5000, 3000, 8000, 2000, 7000};
    sort(revenues.begin(), revenues.end(), greater<int>());
    cout << "Bai 5: " << endl;
    printArray(revenues);

    // Bài 6: Sắp xếp độ tuổi người dùng
    vector<int> ages = {25, 30, 18, 40, 22};
    sort(ages.begin(), ages.end());
    cout << "Bai 6: " << endl;
    printArray(ages);

    // Bài 7: Sắp xếp danh sách bài hát theo lượt nghe
    vector<int> listens = {12000, 8000, 15000, 5000, 9000};
    sort(listens.begin(), listens.end(), greater<int>());
    cout << "Bai 7: " << endl;
    printArray(listens);

    // Bài 8: Sắp xếp mã hàng hóa theo thứ tự từ điển
    vector<string> productCodes = {"A001", "B002", "A003", "C001", "B001"};
    sort(productCodes.begin(), productCodes.end());
    cout << "Bai 8: " << endl;
    printArray(productCodes);

    // Bài 9: Sắp xếp khoảng cách giữa các địa điểm
    vector<double> distances = {5.5, 3.2, 8.1, 2.0, 4.7};
    sort(distances.begin(), distances.end());
    cout << "Bai 9: " << endl;
    printArray(distances);

    // Bài 10: Sắp xếp số lượng bình luận trên bài viết
    vector<int> comments = {120, 80, 150, 50, 90};
    sort(comments.begin(), comments.end(), greater<int>());
    cout << "Bai 10: " << endl;
    printArray(comments);

    // Bài 11: Sắp xếp số lượng sản phẩm tồn kho
    vector<int> stock = {50, 20, 80, 10, 30};
    sort(stock.begin(), stock.end(), greater<int>());
    cout << "Bai 11: " << endl;
    printArray(stock);

    // Bài 12: Sắp xếp thời gian chạy của vận động viên
    vector<double> runTimes = {10.5, 9.8, 11.2, 10.0, 9.5};
    sort(runTimes.begin(), runTimes.end());
    cout << "Bai 12: " << endl;
    printArray(runTimes);

    // Bài 13: Sắp xếp số lượng like trên bài đăng
    vector<int> likes = {1200, 800, 1500, 500, 900};
    sort(likes.begin(), likes.end(), greater<int>());
    cout << "Bai 13: " << endl;
    printArray(likes);

    // Bài 14: Sắp xếp số lượng khách hàng theo khu vực
    vector<int> customers = {500, 300, 800, 200, 700};
    sort(customers.begin(), customers.end(), greater<int>());
    cout << "Bai 14: " << endl;
    printArray(customers);

    // Bài 15: Sắp xếp số lượng xe bán ra theo tháng
    vector<int> carSales = {120, 80, 150, 50, 90};
    sort(carSales.begin(), carSales.end());
    cout << "Bai 15: " << endl;
    printArray(carSales);

    // Bài 16: Sắp xếp số lượng học sinh theo lớp
    vector<int> students = {35, 40, 30, 45, 25};
    sort(students.begin(), students.end());
    cout << "Bai 16: " << endl;
    printArray(students);

    // Bài 17: Sắp xếp số lượng đơn hàng theo ngày
    vector<int> orders = {120, 80, 150, 50, 90};
    sort(orders.begin(), orders.end(), greater<int>());
    cout << "Bai 17: " << endl;
    printArray(orders);

    // Bài 18: Sắp xếp số lượng phòng trống theo khách sạn
    vector<int> rooms = {20, 15, 30, 10, 25};
    sort(rooms.begin(), rooms.end(), greater<int>());
    cout << "Bai 18: " << endl;
    printArray(rooms);

    // Bài 19: Sắp xếp số lượng khách hàng tiềm năng
    vector<int> leads = {50, 30, 80, 20, 70};
    sort(leads.begin(), leads.end(), greater<int>());
    cout << "Bai 19: " << endl;
    printArray(leads);

    // Bài 20: Sắp xếp số lượng sản phẩm lỗi
    vector<int> defects = {15, 10, 20, 5, 25};
    sort(defects.begin(), defects.end());
    cout << "Bai 20: " << endl;
    printArray(defects);

    return 0;
}