나는 '벡터'세트를 가지고 있는데, 나는 '유사점'에 근거하여 정렬해야합니다.알고리즘 찾기 : '유사성'에 의한 클러스터링
벡터 {1,0,0} {1,1,0} {0,1,0} {1,0,1}은 꽤 유사하며 결국에는 서로 가깝게 있어야합니다. 그러나 벡터 {1, 0, 0} {8, 0, 0} {0, 5, 0} -은 그렇지 않습니다.
A와 B 사이의 메트릭은 max (abs (A [i] -B [i]))이지만 어떤 알고리즘이 상대 비교를 기반으로 정렬 할 수 있습니까?
UPD : 입력 : N 벡터의 어레이
OUPUT : N 벡터 인덱스 벡터에 의해 가까운 (도착 [I] 도착 [I + 1] 예를 들면)는 '비슷한'= 메트릭 도착의 [사이의 배열 i] 및 arr [i + 1]은 임의의 i, j에 대해 가능한 한 낮다.
메트릭 - 벡터 구성 요소의 최대 차이
upd2 : 지금 보인다 은 @jogojapan은 옳았다 - 내가 A의 그룹
'정렬'이란 무엇을 의미합니까? 메트릭이 있습니까? 인접한 벡터 사이의 거리의 합을 최소화하고 싶습니까? –
정렬하는 대신 [클러스터링] (http://en.wikipedia.org/wiki/Cluster_analysis) (즉, 그룹화)을 의미할까요? – jogojapan
내 의견을 바꿔 보겠습니다. 두 가지 주문이있는 경우 어떤 것을 더 잘 결정할 수 있습니까? "각각에 가깝게해야한다"는 정의가 아니다 ... –