Sắp xếpMảng
Mô tả
Cuối học kỳ, thầy hiệu trưởng trường THCS Chuyên Lê Quý Đôn muốn công bố bảng xếp hạng học tập khối 6 để khen thưởng những nỗ lực của các em. Tuy nhiên, danh sách điểm thi vừa được thu thập lại đang lộn xộn, chưa theo trật tự nào cả. Nhiệm vụ của bạn là viết một chương trình nhận vào danh sách điểm các môn thi, sắp xếp chúng theo thứ tự tăng dần (từ điểm thấp nhất đến điểm cao nhất) để nhà trường dễ dàng tổng hợp và xét thưởng.
Đầu vào
Hàm sapXepDiemThi nhận vào một tham số:
diem: Một mảng số nguyên (integer) chứa điểm số của các học sinh. Mỗi phần tử là một số nguyên.- Kích thước mảng
n(số lượng học sinh): 0 <= n <= 10^5. - Giá trị mỗi điểm
x: 0 <= x <= 100 (theo thang điểm 10 nhân với 10 để tránh số thập phân).
Đầu ra
Trả về một mảng số nguyên mới chứa các phần tử đã được sắp xếp theo thứ tự tăng dần.
Ràng buộc
- Thời gian chạy tối đa cho phép: 2000ms (2 giây).
- Bạn cần sử dụng thuật toán sắp xếp có độ phức tạp phù hợp (ví dụ: O(n log n)) để đảm bảo chạy kịp với dữ liệu lớn.
- Không được dùng hàm sắp xếp có sẵn của ngôn ngữ nếu bài yêu cầu cụ thể về thuật toán (ở mức độ Easy, bạn có thể dùng hàm có sẵn nhưng hãy hiểu cách nó hoạt động).
Ví dụ
Ví dụ 1:
- Đầu vào:
[85, 92, 78, 90, 88] - Giải thích: Mảng điểm ban đầu gồm 5 số: 85, 92, 78, 90, 88. Sau khi sắp xếp tăng dần, các số sẽ được xếp lại thành: 78 (nhỏ nhất), 85, 88, 90, 92 (lớn nhất).
- Đầu ra:
[78, 85, 88, 90, 92]
Ví dụ 2:
- Đầu vào:
[50, 50, 100, 0] - Giải thích: Mảng có 2 phần tử trùng nhau là 50. Khi sắp xếp, chúng nằm cạnh nhau. 0 là nhỏ nhất, 100 là lớn nhất.
- Đầu ra:
[0, 50, 50, 100]