예제 #1
0
        public static Point[] NOrderingSorter(Point[] array)
        {
            Boundary boundary = GetBoundary(array, 5);

            var sfc = SpaceFillingCurves.NOrdering(Moves.North, Moves.SouthEast);

            //return SortAlgorithm.Heapsort<Point>(array, (p1, p2) => NOrderingComparer(p1, p2, boundary));
            //return SortAlgorithm.MergeSort<Point>(array, (p1, p2) => NOrderingComparer(p1, p2, boundary));
            //IRI.Msh.DataStructure.SortAlgorithm.QuickSort<Point>(array, (p1, p2) => HilbertComparer(p1, p2, boundary));
            //return array;

            return(SortAlgorithm.MergeSort <Point>(array, (p1, p2) => sfc.ComparePoints(p1, p2, boundary)));
        }
예제 #2
0
 public static int ZOrderingComparer(Point first, Point second, Boundary mbb)
 {
     return(SpaceFillingCurves.NOrdering(Moves.East, Moves.SouthWest).ComparePoints(first, second, mbb));
 }