Tôi đang cố gắng thông minh bin một bộ sưu tập được sắp xếp. Tôi có một bộ sưu tập gồm mẩu dữ liệu. Nhưng tôi biết rằng dữ liệu này phù hợp vào không đều có kích thước thùng. Tôi không biết làm thế nào để chọn điểm cuối một cách thông minh để phù hợp với dữ liệu. ví dụ:
Giả sử tôi có 12 mục trong bộ sưu tập của mình và tôi biết dữ liệu sẽ phù hợp với 3 thùng:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
Làm cách nào để tôi chọn điểm dừng của mình một cách thông minh cho các thùng của ?
Việc triển khai hiện tại tôi đã chia dữ liệu thành các thùng có kích thước đồng đều và sau đó lấy trung bình của các điểm cuối để tìm các chỉ mục cho phần cuối của các thùng. Vì vậy, nó hoạt động như thế này:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
first break evenly: i = 1-4, 5-8, 9-12
mean endpoints: between 4 and 5: (3+3)/2 = 3
between 8 and 9: (3+3)/2 = 3
Vì vậy, bây giờ bất cứ điều gì dưới 3 phù hợp với bin 1, bất cứ điều gì trên 3 nhưng dưới 3 phù hợp với bin 2 và bất cứ điều gì trên 3 phù hợp với bin 3. Bạn có thể thấy vấn đề của tôi là gì. Nếu dữ liệu có các thùng không bằng nhau, phương pháp của tôi không thành công.
Một người bạn đã đề cập đến thuật toán hàng xóm gần nhất k nhưng tôi không chắc chắn.