Khối sắp xếp xáo trộn
Các loại khối ngẫu nhiên là một phương pháp (chứ không phải nhân tạo) phân loại một danh sách. Nó hoạt động như sau, được minh họa bằng một ví dụ.
[6, 1, 0, 3, 2, 4, -2, -1]
Break list into contiguous blocks
[6][1, 0][3, 2, 4][-2, -1]
Sort each block
[6][0, 1][2, 3, 4][-2, -1]
Sort blocks lexicographically
[-2, -1][0, 1][2, 3, 4][6]
Concatenate
[-2, -1, 0, 1, 2, 3, 4, 6]
Phân vùng thành các khối liền kề có thể được chọn tùy ý. Tuy nhiên, không phải tất cả các lựa chọn khối sẽ mang lại một danh sách được sắp xếp ở cuối:
[6, 1, 0, 3, 2, 4, -2, -1]
[6, 1, 0][3, 2, 4][-2, -1]
[0, 1, 6][2, 3, 4][-2, -1]
[-2, -1][0, 1, 6][2, 3, 4]
[-2, -1, 0, 1, 6, 2, 3, 4]
Nếu tất cả các khối có chiều dài 1 hoặc nếu chỉ có một khối thì kết quả tất nhiên sẽ được sắp xếp. Nhưng đây là những trường hợp khá cực đoan. Trong thử thách này, nhiệm vụ của bạn là tìm sự cân bằng giữa số lượng khối và chiều dài tối đa của một khối.
Nhiệm vụ
Đầu vào của bạn là một danh sách không có số nguyên L , được lấy ở bất kỳ định dạng hợp lý nào. Đầu ra của bạn sẽ là số nguyên nhỏ nhất N mà L có thể được ngăn chặn ngẫu nhiên được sắp xếp sao cho số khối và độ dài của mỗi khối là tại hầu hết các N .
Số byte thấp nhất trong mỗi ngôn ngữ sẽ thắng. Luật golf tiêu chuẩn được áp dụng.
Các trường hợp thử nghiệm
[5] -> 1
[1,2] -> 2
[0,2,1,-1] -> 3
[-1,0,2,1] -> 2
[9,3,8,2,7] -> 4
[9,2,8,3,7] -> 3
[5,9,3,7,2,4,8] -> 7
[-1,-2,1,2,-1,-2,7] -> 4
[6,1,0,3,2,4,-2,-1] -> 4
[12,5,6,-6,-1,0,2,3] -> 3
[1,0,1,0,1,0,1,0,1,0] -> 6
[1,2,1,3,1,2,3,2,4,3] -> 5
[7,7,7,7,8,9,7,7,7,7] -> 4