如果有一组已经给定点x1,x2,...xn,另外有一组点p1,p2,...pn,需要按照他们对应的近邻排序对p1,p2,…pn排序,即排序后begin{equation}|p_ix_i|=min |p_ix_j|end{equation},距离就是平面欧式距离
我现在写的是
for(int i=0; i<matsz; ++i){
std::swap(res[i],*std::min_element(res.begin()+i,res.end(),
[&i](std::complex<double> &a, std::complex<double> &b)
{return norm(a-pre[i]) < norm(b-pre[i]);}));
}
是否还有更优化的算法?