어떻게 총 주문을 정의 하시겠습니까? 예를 들어 총 주문이나 모양 등을 정의해야하는 경우 어떻게해야할까요?총 주문 정의
편집 : 구체적으로 좌표 (x, y, z)가있는 객체를 기반으로 총 주문을 정의 하시겠습니까? 각 객체가 독특하고 정렬 가능하도록 정렬하는 방법을 이해할 수 없습니다.
어떻게 총 주문을 정의 하시겠습니까? 예를 들어 총 주문이나 모양 등을 정의해야하는 경우 어떻게해야할까요?총 주문 정의
편집 : 구체적으로 좌표 (x, y, z)가있는 객체를 기반으로 총 주문을 정의 하시겠습니까? 각 객체가 독특하고 정렬 가능하도록 정렬하는 방법을 이해할 수 없습니다.
2D 또는 3D 개체에 "자연적인"순서는 없습니다. 이것은 물론, 객체가 고유하게 좌표로 식별되는 가정
// returns -1 if o1<o2, 1 if o1>o2, 0 if o1==o2
int Compare(MyObject o1 ,MyObject o2)
{
if(o1.x>o2.x) return 1;
if(o1.x<o2.x) return -1;
if(o1.y>o2.y) return 1;
if(o1.y<o2.y) return -1;
if(o1.z>o2.z) return 1;
if(o1.z<o2.z) return -1;
return 0;
}
그러나, 당신이 순서를 유도하려는 경우, 당신은 예를 들어, 자신의 좌표로이 방법을 비교할 수 있습니다.
이 정렬을 통해 이러한 개체를 정렬하고 비교할 수 있습니다. 자신이 대답해야하는 질문은 문제로 해결하고자하는 문제에 도움이되는지 여부입니다. 일반적으로 세트의 특정 요소뿐만 아니라 주어진 범위의 모든 요소를 원할 때 특히 1D 세트의 순서는 조회를 빠르게 수행하는 데 사용됩니다.
2D 또는 3D 세트의 경우 주어진 사각형 또는 큐브 내의 모든 요소 세트를 찾는 것과 비슷한 질문이 있습니다. 그 목적을 위해, 위의 명령은 당신을 아주 잘 지원하지 않습니다. 2D quadtree 또는 3D octree과 같은 데이터 구조가이 작업을 훨씬 잘 지원합니다.
지연에 대해 사과드립니다. 하지만 고마워요. – rmp2150
죄송합니다. 매우 모호합니다. – rmp2150