diff --git a/sample_consensus/include/pcl/sample_consensus/sac_model.h b/sample_consensus/include/pcl/sample_consensus/sac_model.h index 525169cadec..0c6797b4d53 100644 --- a/sample_consensus/include/pcl/sample_consensus/sac_model.h +++ b/sample_consensus/include/pcl/sample_consensus/sac_model.h @@ -421,8 +421,9 @@ namespace pcl computeVariance (const std::vector &error_sqr_dists) { std::vector dists (error_sqr_dists); - std::sort (dists.begin (), dists.end ()); - double median_error_sqr = dists[dists.size () >> 1]; + const size_t medIdx = dists.size () >> 1; + std::nth_element (dists.begin (), dists.begin () + medIdx, dists.end ()); + double median_error_sqr = dists[medIdx]; return (2.1981 * median_error_sqr); }