数据结构与算法
文章平均质量分 81
Meng
这个作者很懒,什么都没留下…
展开
-
对数器
对数器的作用 对数器可以说是验证算法是否正确的一种方式。尤其是在笔试的时候,用贪心算法写出的程序,暂时无法用数学公式严格推导证明,只能通过大量的数据集验证算法的正确性。而大量的数据集当中要包括各种情况,各个方面都要考虑到,对我们自己来说,有时会考虑不周,而且又是在时间紧迫的情况下。所以对数器就派上了用场。对数器的概念 对数的基本概念如下有一个你想测试的算法a实现一个绝对正确但复杂度高的算...原创 2018-03-10 08:46:07 · 6493 阅读 · 7 评论 -
算法题--字符串排列组合、n皇后、字符出现次数(C++)
目录 题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。题目:输入一个字符串,求字符的所有组合。题目:输入一个含有8个数字的数组,把这8个数字放在正方体的8个顶点上,使得正方体上相对的面上的4个顶点的和都相等。题目:N皇后问题。题目:在一个字符串中找到第一个只出现一次的字符,并返回它的位置。题目:定义一个函数,输入两个字符串,从第一个字符串中删除在第二个字符...原创 2018-07-31 10:55:51 · 1437 阅读 · 0 评论 -
算法题C++(五)
本博客内容:判断一棵二叉树是否是平衡二叉树判断一棵树是否是搜索二叉树判断一棵树是否是完全二叉树已知一棵完全二叉树,求其节点的个数判断一棵二叉树是否是平衡二叉树bool isBalance1(TreeNode* root) { if (root == NULL) { return true; } return abs(getHeight1(root->left) - getHeigh...原创 2018-05-08 09:46:28 · 174 阅读 · 0 评论 -
算法题C++(四)
本博客目录二叉树的先序、中序、后序遍历,递归和非递归 在二叉树中找到中序遍历的下一个节点 二叉树的序列化和反序列化二叉树的先序、中序、后序遍历,递归和非递归递归版本//树的结构struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), ...原创 2018-04-27 09:23:27 · 354 阅读 · 0 评论 -
算法题C++(三)
本博客目录将单向链表按某值划分成左边小、中间相等、右边大的形式复制含有随机指针节点的链表两个单链表相交的一系列问题将单向链表按某值划分成左边小、中间相等、右边大的形式给定一个单向链表的头节点head,节点的值类型是整型,再给定一个整数p。实现一个调整链表的函数,将链表调整为左部分都是值小于 p的节点,中间部分都是值等于p的节点,右部分都是值大于 p的节点。空间复杂度为O(N)的算法//建立辅助数组...原创 2018-04-06 10:22:42 · 497 阅读 · 0 评论 -
算法题C++(二)
本博客目录转圈打印矩阵旋转正方形矩阵“之”字形打印矩阵反转单向链表打印有序链表的公共部分判断一个链表是否为回文结构转圈打印矩阵给定整型矩阵,按照顺时针转圈打印矩阵class printCircleMatrix{public: printCircleMatrix(); ~printCircleMatrix(); /* 要宏观调控 先打印最外面一圈,之后左上角+1,右下角-1 继续打印...原创 2018-03-28 14:57:19 · 317 阅读 · 0 评论 -
算法题C++(一)
最近在刷算法题,发表出来与大家分享,有错误还望指出,本博客目录实现返回最小元素功能的栈结构用队列实现栈结构用栈实现队列结构实现一个特殊的栈在实现栈功能的基础上,在返回实现栈中最小元素的操作要求:pop,push,getMin操作时间复杂度为O(1)可以使用现成的栈结构用两个栈来实现,栈1正常存储,来一个数压栈一个。栈2实现最小元素,当新来的数比栈顶元素小时,压入新来的,大于栈顶元素时,重复压入栈顶...原创 2018-03-22 09:50:17 · 525 阅读 · 0 评论 -
C++内存管理
内存分配方式在C++中,内存有5种方式:栈:执行函数时,函数内部局部变量的存储单元在栈中创建,函数结束时,销毁。先进后出的存储方式。堆:动态分布的区域,由new分配内存块。记得一个new一定对应一个delete。否则会造成内存泄漏。自由存储区:是由malloc分配的内存块。一个malloc要对应一个free。全局/静态存储区:全局变量和静态变量的居住点。常量存储区:存储不允许修改的常量。堆和栈的区...原创 2018-03-21 15:42:02 · 128 阅读 · 0 评论 -
排序算法总结(C++)(第一部分)
排序算法总结(C++)(第一部分)在这篇文章中,记录了自己学习的经典排序算法,代码语言用的C++。现阶段,排序算法已经非常成熟,有各种封装的库函数。但是还是要学习并自己写出代码,一方面理解排序算法可以帮助我们锻炼思维能力,另一方面自己给出代码可以增加我们的码农能力。而在这里记录总结下来,一方面和大家分享探讨,另一方面有不对的地方,希望大家给我指导改正。此外,也能锻炼自己的学习总结能力。本博...原创 2018-03-17 10:09:36 · 224 阅读 · 0 评论 -
关于树的算法题(C++)
前段时间总结了一下关于树的算法,上传到博客,以后方便查看。目录二叉树的下一个节点二叉树的镜像对称二叉树树的子结构二叉树的路径打印二叉树重建二叉树二叉搜索树第K大的节点二叉搜索树变成双向链表二叉搜索树的后序遍历序列化二叉树平衡二叉树二叉树的下一个节点/*二叉树的下一个节点给定一颗二叉树和其中一个节点,找到中序遍历的下一个节点,树中有指...原创 2018-09-15 19:13:29 · 675 阅读 · 0 评论