partial_sort / partial_sort_copy
-----------------------------------------------------------------------------------------------------------------------------------------
描述:本算法接受一个 middle 迭代器(位于序列[first, last) 之列),然后重新安排[first, last),
使序列中的 middle - firs...
分类:
其他好文 时间:
2014-07-20 23:37:44
阅读次数:
293
inplace_merge(应用于有序区间)
--------------------------------------------------------------------
描述:如果两个连接在一起的序列[first, middle)和 [middle, last]都已排序,
那么 inplace_merge 可将它们结合成单一一个序列,并仍有序。
源码:
template
inline void inplace_merge(Bidi...
分类:
其他好文 时间:
2014-07-20 23:27:42
阅读次数:
368
vector
----------------------------------------------------------------------
描述:
1.迭代器
vector 维护的是一个连续线性空间,它的迭代器是普通指针,
能满足 RandomAccessIterator 所有必要条件:operator*, operator->,operator++,operator--,operator+,
operator-,operator+=,operator-=,operator[]
2.数据...
分类:
其他好文 时间:
2014-07-20 23:25:57
阅读次数:
378
nth_element
------------------------------------------------------------------------------
描述:重新排序,使得[nth,last)内没有任何一个元素小于[first,nth)内的元素,
但对于[first,nth)和[nth,last)两个子区间内的元素次序则无任何保证。
思路:
1.以 median-of-3-partition 将整个序列分割为更小的左、右子序列
2.如果 nth 迭代器落于左序列,就再对左子...
分类:
其他好文 时间:
2014-07-20 23:20:34
阅读次数:
279
random_shuffle
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
描述:将[first,last)的元素次序随机重排。
思路:
必须是 RandomAccessIterator
1.遍历区间
2.产生[...
分类:
其他好文 时间:
2014-07-20 23:12:29
阅读次数:
231
这里讲讲对binary Tree 进行level order Traversal.。 即BF traversal(广度优先遍历)。即首先, 访问根节点F, 打印出数据。 接着访问level 1的所有节点, 即D, J。 访问完level1之后, 访问level2, 即B, E, G , K 等等一次访问下去, 直至遍历完所有的节点。
BFS遍历的思路很简单, 但是当我们编程实现的时候,...
分类:
编程语言 时间:
2014-07-20 23:11:21
阅读次数:
344
pre_permutation
----------------------------------------------------------------
描述: 取得 [first, last) 所标示之序列的前一个排列组合。如果没有,返回 false,有,返回true
思路:
从后往前
1.找两个相邻元素,令左端的元素为*i,右端的元素为*ii,且满足 *i > *ii
2.找出第一个小于 *i 的元素,令其为 *j,将*i,*j元素对调
3.将ii右端的所有元素颠倒
template <cl...
分类:
其他好文 时间:
2014-07-20 23:07:55
阅读次数:
286
equal_range(应用于有序区间)
--------------------------------------------------------------------------------------------------------------------------------------
描述:利用二分查找找到一个区间,区间里的所有值都等于给定值,返回的是一个pair,
分别存储区间的上界迭代器和下界迭代器
源码:
template <class ForwardIterator, c...
分类:
其他好文 时间:
2014-07-20 23:06:36
阅读次数:
263
merge sort
----------------------------------------------------------------------
描述:归并排序
思路:
1.将区间对半分割
2.对左、右段分别排序
3.利用inplace_merge将左、右段合并成为一个完整的有序序列
复杂度:O(log n)
源码:
template
void mergesort(BidirectionalIter first, Bidirecti...
分类:
其他好文 时间:
2014-07-20 23:05:52
阅读次数:
245
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).
For example:
Given binary...
分类:
其他好文 时间:
2014-07-20 22:41:23
阅读次数:
303