문제점 : 고정 된 파란색 좌표가 있습니다. 모든 파란색 점의 직교 거리를 얻고 그것의 최소한을 찾는2 차원 그래프에서 주어진 점에 가장 가까운 좌표를 찾는 알고리즘
: 나는 가장 가까운 blue
이 Here is the graph
이 내 방식이었다 좌표 주어진 red
좌표 찾고 싶어요.
float min=Float.MAX_VALUE;
float temp=0;
for(int i=0;i<cordinateList.size;i++){
temp=cordinateList.get(i).x*cordinateList.get(i).x+cordinateList.get(i).y*cordinateList.get(i).y;
if(temp<min){
min=temp;
}
}
내가해야 할 일 : cordinateList 모두 매우 비효율적이며 내 프로그램은 주어진 시간에 작업을 수행 실패에 너무 거리를 찾는 매우 크기 때문에
내 접근이 가능하지 않습니다 .
광산과 제안보다 효율적인 알고리즘이 있습니까?
업데이트 : 빨간색 점은 한 번에 하나씩 약 백만 번 있습니다. 파란색 점 목록은 고정되어 있습니다. 그래서 필자는 필요하다면 정렬과 같은 청색 포인트 목록에 초기 변경을 할 수 있다고 생각한다.
감사합니다.
모든 포인트에 대해 보로 노이 다이어그램을 준비한 다음 검사 지점이 어느 지역에 속하는지 확인하십시오 – mangusta
좌표가 목록에서만 사용 가능하고 목록의 어느 지점 에나 좌표가 나타날 수있는 경우 상당한 개선이 없습니다. 거리를 계산할지, 목록을 정렬 할 지 등리스트의 각 포인트를 항상 살펴야하기 때문에 만들어 질 수 있습니다. 좌표 포인트에 어떤 패턴이 있다면,이를 활용할 수도 있습니다. 거기 있니? –
좌표 목록은 어떤 식 으로든 정렬됩니까? 예를 들어, x 축 값으로 정렬? – jaket