算法
文章平均质量分 73
heaven5heep
programeer
展开
-
C++常用排序模板
排序 区分的主要依据就是算法是否是基于比较的 leetcode排序 算法可视化 图是leetcode题解上的 这里不打算具体的说计数排序和桶排序,因为思路较为简单 代码均在leetcode上测试过,可以放心的使用 选择排序 class Solution { public: vector<int> sortArray(vector<int>& nums) { int n = nums.size(); for (int i = 0; i原创 2021-01-09 14:32:58 · 343 阅读 · 0 评论 -
排序
# 排序 区分的主要依据就是算法是否是基于比较的 [leetcode排序](https://leetcode-cn.com/problems/sort-an-array/) ![20210109135702](https://picsheep.oss-cn-beijing.aliyuncs.com/pic/20210109135702.png) [算法可视化](https://github.com/heray1990/AlgorithmVisualization) 图是leetcode题解上的原创 2021-01-09 14:31:53 · 171 阅读 · 0 评论 -
莫里斯遍历
莫里斯遍历 有关二叉树的遍历算法 非递归,无额外空间,时间复杂度O(n) 空间复杂度O(1) 很巧妙的遍历算法 核心思想就是利用树节点中的空指针 考虑非递归算法,如果我们不用栈的话,最主要的问题就是遍历完一个节点的左子树后怎么回到这个节点并遍历他的右子树 在遍历左子树的时候,最后一个遍历的节点一定是二叉树中序遍历中,当前节点的前一个节点 也就是当前节点左子树的最右边的节点 我们可以把这个前驱节点的右子树设为当前节点,这样遍历完左子树的时候,也就是遍历完这个前驱节点的时候,我们可以通过先前设置的那个指针回到当原创 2020-12-13 19:46:57 · 235 阅读 · 0 评论 -
算法小总结
mt19937 参考文章mt19937 参考文章uniform_int_distribution 参考文章random_device mt19937是C++11中新加入的特性。 Mersenne Twister算法译为马特赛特旋转演算法,是伪随机数发生器之一,其主要作用是生成伪随机数。 Mersenne Twister有以下优点:随机性好,在计算机上容易实现,占用内存较少(mt19937的C程式码执行仅需624个字的工作区域),与其它已使用的伪随机数发生器相比,产生随机数的速度快、周期长,可达到2^1993原创 2020-12-13 19:43:01 · 171 阅读 · 0 评论