Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
inplace_merge [2009/04/03 18:04] ornsh |
inplace_merge [2009/04/03 18:08] ornsh |
||
---|---|---|---|
Linia 12: | Linia 12: | ||
BidirectionalIterator last, StrictWeakOrdering comp); | BidirectionalIterator last, StrictWeakOrdering comp); | ||
</code> | </code> | ||
+ | |||
+ | ===== Opis algorytmu ===== | ||
Algorytm zawarty w Standard Template Library. | Algorytm zawarty w Standard Template Library. | ||
Linia 17: | Linia 19: | ||
Algorytm jest stabilny. W pierwszej wersji funkcji do porównywania elementów używany jest //operator< //. | Algorytm jest stabilny. W pierwszej wersji funkcji do porównywania elementów używany jest //operator< //. | ||
W drugiej wersji możliwe jest dostarczenie własnego funktora testującego poprzedzanie elementów. Funkcja testująca pobiera 2 argumenty i zwraca wartość logiczną //TRUE// w przypadku, gdy pierwszy argument poprzedza drugi; jeśli zamienimy argumenty miejscami otrzymamy //FALSE//. | W drugiej wersji możliwe jest dostarczenie własnego funktora testującego poprzedzanie elementów. Funkcja testująca pobiera 2 argumenty i zwraca wartość logiczną //TRUE// w przypadku, gdy pierwszy argument poprzedza drugi; jeśli zamienimy argumenty miejscami otrzymamy //FALSE//. | ||
+ | |||
+ | ===== Złożoność ===== | ||
+ | |||
+ | Złożoność pesymistyczna algorytmu to O(N log(N)). | ||
===== Nagłówek ===== | ===== Nagłówek ===== | ||
Linia 123: | Linia 129: | ||
std::cout << std::endl <<std::endl; | std::cout << std::endl <<std::endl; | ||
</code> | </code> | ||
+ | |||
+ | ===== inplace_merge.cpp ===== | ||
+ | |||
+ | {{ inplace_merge.cpp }} | ||
+ |