C++中的std::is_sorted
C++函数 std::is_sorted 检查范围 [first, last] 中的元素是否按升序排列。元素使用 ** < ** 操作符进行比较。
std::is_sorted 有两个变体:
不使用二元谓词
bool is_sorted( ForwardIt first, ForwardIt last );
first, last : 要检查的元素范围
返回值 :
true: 如果元素按非递减顺序排序。
false: 任何按递增顺序排列的元素。
例子 :
给定大小为 n 的容器,以及位于 [0 … n] 之间的范围,编写一个程序来检查它是否按升序排列。数组允许相等的值,两个连续的等值被认为是排序的。
输出 :
我们在这里讨论了其他方法。
使用二元谓词
bool is_sorted (ForwardIt first, ForwardIt last, Compare comp);
first, last : 要检查的元素范围
comp : 二元谓词
返回值 :
true: 如果元素按非递减顺序排序。
false: 任何按递增顺序排列的元素。
例子 :
给定仅由字符组成的字符串。检查字符是否按排序顺序排列。此外,比较时忽略大小写,即 ‘f’ > ‘A’。
输出结果:
时间复杂度: 这个复杂度是线性的,它比较一对元素直到找到一个不匹配的元素或者到达结尾。