Mai*_*tor 9 sorting algorithm haskell data-structures
以下功能:
sortByDist :: (Ord a, Floating a, RealFrac a) => [V2 a] -> Map (V2 a) [V2 a]
sortByDist graph = Map.fromList $ map sort graph where
    sort point = (point, sortBy (comparing (distance point)) graph)
将列表上的每个点P映射到按其到P的距离排序的点列表.例如,sortByDist [a, b, c, d] Map.! b列表是[b,a,c,d],如果a是距离b最近的点,c则是第二个最近的点,d是第三个.
由于它对n * log n每个元素执行排序,因此复杂性如此n^2 * log n.这与对N个点列表进行排序所需时间的基准一致:
points  time
200     0m0.086s
400     0m0.389s
600     0m0.980s
800     0m1.838s
1000    0m2.994s
1200    0m4.350s
1400    0m6.477s
1600    0m8.726s
3200    0m39.216s    
理论上可以改善多少?有可能把它归结为N * log N?