算法需要对于每个区间从PX中取出PY。然而这是一个O(n)的操作,如果对于每个区间都来一下,最下面一层就有 n^2/2的运算量,时间复杂度为O(n^2),和brute是一个级别的。
解决方法:reduce on merge sort, Py先不排好序,而是随着区间合并来做merge排序。 我用了自底向上的merge sort来实现。 从1M个点里面找最短需要3秒。
算法需要对于每个区间从PX中取出PY。然而这是一个O(n)的操作,如果对于每个区间都来一下,最下面一层就有 n^2/2的运算量,时间复杂度为O(n^2),和brute是一个级别的。
解决方法:reduce on merge sort, Py先不排好序,而是随着区间合并来做merge排序。 我用了自底向上的merge sort来实现。 从1M个点里面找最短需要3秒。