Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Java] Sort song song theo block rồi merge

    Cho mảng N số nguyên. Chia mảng thành P=4 block bằng nhau. Mỗi block do một Callable<int[]> sort tăng dần và trả về. Dùng invokeAll lấy 4 mảng đã sort theo thứ tự (deterministic). Sau đó MERGE 4 mảng đã sort bằng PriorityQueue<int[]>{value, blockIdx, posInBlock} để thu được mảng sort cuối. In mảng kết quả cách nhau bởi dấu cách.

    • Định dạng đầu vào:

      Dòng 1: N (4 ≤ N ≤ 10^4). Dòng 2: N số nguyên |a_i| ≤ 10^6.

    • Ràng buộc đầu vào:

      4 ≤ N ≤ 10^4

    • Định dạng đầu ra:

      Một dòng N số đã sort tăng dần.

    Ví dụ:

    Đầu vào:

    8
    5 1 4 2 8 3 7 6
    

    Đầu ra:

    1 2 3 4 5 6 7 8

    Giải thích:

    4 block size=2: [5,1]→[1,5], [4,2]→[2,4], [8,3]→[3,8], [7,6]→[6,7]. Merge: 1 2 3 4 5 6 7 8.

    Đang tải editor...