Narzędzia użytkownika

Narzędzia witryny


partial_sort

To jest stara wersja strony!


Algorytm partial_sort

Plik nagłówkowy

#include    <algorithm>

Deklaracja funkcji

template<class RandomAccessIterator>
    void partial_sort(RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last);
 
template<class RandomAccessIterator, class Compare>
    void partial_sort(RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last, Compare comp);

Parametry funkcji

  • RandomAccessIterator first

Iterator wskazujący na początek zakresu częściowego sortowania w kolekcji.

  • RandomAccessIterator middle

Iterator wskazujący, ile elementów przed nim ma być posortowane.

  • RandomAccessIterator last

Iterator wskazujący na koniec zakresu częściowego sortowania w kolekcji.

  • Compare comp

Zewnętrzna funkcja lub funktor, służąca do porównywania elementów w kolekcji.

Wartość zwracana

Brak.

Opis algorytmu

Przemieszcza elementy w kolekcji w zakresie [first, last) tak, że w zakresie [first, middle) zawiera najmniejsze elementy z całego zakresu sortowania kolekcji, a w zakresie [middle, last) znajdują się pozostałe, nieuporządkowane elementy.

Do porównywania obiektów w kolekcji funkcja wykorzystuje albo zdefiniowany dla obiektu operator mniejszości w pierwszej wersji funkcji, albo zewnętrzną funkcję/funktor porównujący w wersji drugiej.

Złożoność algorytmu

Do sortowania elementów wykorzystano algorytm heapsort, więc jego złożoność można oszacować wg poniższego wzoru:

<latex>O = (last - start)\cdot log(middle - start)</latex>

partial_sort.1229081238.txt.gz · ostatnio zmienione: 2008/12/12 12:27 przez alaskow1