\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - Spatial Sorting

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Multiscale_sort< Sort > Class Template Reference
Function Objects

`#include <CGAL/Multiscale_sort.h>`

## Definition

The class `Multiscale_sort` represents a sorting algorithm adaptor.

Given a range of `n` points:

1. it applies `Sort` on the last `(1 - ratio) * n` points,
2. it recurses on the first `ratio * n` points, stopping when there are less than `threshold` points.

## Creation
| Multiscale_sort (const Sort &sort=Sort(), std::ptrdiff_t threshold=1, double ratio=0.5)
| constructs an instance with `traits` as traits class instance.

## Operations
template<class RandomAccessIterator >
void | operator() (RandomAccessIterator begin, RandomAccessIterator end) const
| It sorts the range `[begin, end)`. More...

## Member Function Documentation

template<typename Sort >
template<class RandomAccessIterator >

void CGAL::Multiscale_sort< Sort >::operator() | ( | RandomAccessIterator | begin,
|  | RandomAccessIterator | end
| ) |  | const

It sorts the range `[begin, end)`.

`Sort::operator()(RandomAccessIterator begin, RandomAccessIterator end)` must be defined.