지능적으로 정렬 된 컬렉션을 비우려고합니다. 개의 데이터 모음 이 있습니다. 하지만 난에이 데이터 맞는 것을 알고 불평등 쓰레기통 크기. 데이터에 적합하게 엔드 포인트를 지능적으로 선택하는 방법을 모르겠습니다. 예를 들면 다음과 같습니다.m
내 컬렉션에 12 개의 항목이 있고 데이터가 3 개의 저장소에 적합하다는 것을 알고 있습니다.
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
의 빈에 대한 중단 점을 지능적으로 선택하려면 어떻게해야 합니까?
현재 구현 한 데이터를 고른 크기의 빈으로 나누고 끝점의 평균을 사용하여 빈 끝의 인덱스를 찾습니다. 따라서 다음과 같이 작동합니다.
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
이제 3 이하는 bin 1에, 3 이상 3 이하는 bin 2에, 3 이상은 bin 3에 적합합니다. 내 문제가 무엇인지 알 수 있습니다. 데이터에 빈이 다른 경우 내 방법이 실패합니다.
친구가 k- 최근 접 이웃 알고리즘을 언급했지만 확실하지 않습니다.