"cpp/algorithm/is sorted") (C++11)  |  checks whether a range is sorted into ascending order   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_is_sorted&action=edit)  
[ ranges::is_sorted  ](/w/cpp/algorithm/ranges/is_sorted "cpp/algorithm/ranges/is sorted") (C++20)  |  checks whether a range is sorted into ascending order   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_is_sorted&action=edit)  
[ is_sorted_until  ](/w/cpp/algorithm/is_sorted_until "cpp/algorithm/is sorted until") (C++11)  |  finds the largest sorted subrange   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_is_sorted_until&action=edit)  
[ ranges::is_sorted_until  ](/w/cpp/algorithm/ranges/is_sorted_until "cpp/algorithm/ranges/is sorted until") (C++20)  |  finds the largest sorted subrange   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_is_sorted_until&action=edit)  
[ nth_element  ](/w/cpp/algorithm/nth_element "cpp/algorithm/nth element") |  partially sorts the given range making sure that it is partitioned by the given element   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_nth_element&action=edit)  
[ ranges::nth_element  ](/w/cpp/algorithm/ranges/nth_element "cpp/algorithm/ranges/nth element") (C++20)  |  partially sorts the given range making sure that it is partitioned by the given element   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_nth_element&action=edit)  
  
####  [ [ edit ](/mwiki/index.php?title=cpp/algorithm&action=edit&section=19
"Edit section: Binary search operations \(on partitioned ranges\)") ]  Binary
search operations (on partitioned ranges)

Defined in header ` [ <algorithm> ](/w/cpp/header/algorithm
"cpp/header/algorithm") `  
---  
[ lower_bound  ](/w/cpp/algorithm/lower_bound "cpp/algorithm/lower bound") |  returns an iterator to the first element _not less_ than the given value   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_lower_bound&action=edit)  
[ ranges::lower_bound  ](/w/cpp/algorithm/ranges/lower_bound "cpp/algorithm/ranges/lower bound") (C++20)  |  returns an iterator to the first element _not less_ than the given value   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_lower_bound&action=edit)  
[ upper_bound  ](/w/cpp/algorithm/upper_bound "cpp/algorithm/upper bound") |  returns an iterator to the first element _greater_ than a certain value   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_upper_bound&action=edit)  
[ ranges::upper_bound  ](/w/cpp/algorithm/ranges/upper_bound "cpp/algorithm/ranges/upper bound") (C++20)  |  returns an iterator to the first element _greater_ than a certain value   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_upper_bound&action=edit)  
[ equal_range  ](/w/cpp/algorithm/equal_range "cpp/algorithm/equal range") |  returns range of elements matching a specific key   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_equal_range&action=edit)  
[ ranges::equal_range  ](/w/cpp/algorithm/ranges/equal_range "cpp/algorithm/ranges/equal range") (C++20)  |  returns range of elements matching a specific key   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_equal_range&action=edit)  
[ binary_search  ](/w/cpp/algorithm/binary_search "cpp/algorithm/binary search") |  determines if an element exists in a partially-ordered range   
(function template)  [ [edit]
](https://en.c