
数据结构
文章平均质量分 91
monkey-PI
这个作者很懒,什么都没留下…
展开
-
刷题--- 输入一个字符串,按字典序打印出该字符串中字符的所有排列
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 提及所有的排列组合,想到的肯定是暴力搜索所有的解。 如何暴力能够排列完所有的组合,一开始我是这样想的。 先假设某个字母在自身的位置不变,其余的进行交换。对于ABC而言 假设A不动,BC交换。ABC ACB 假设B不动,AC...原创 2019-10-13 23:21:37 · 2720 阅读 · 0 评论 -
数据结构---树
树的优势 工程中大量的数据,如果用线性链表的方式存储,则访问的时间则是线性增长的。树结构式的数据结构的查找搜索插入的平均时间为O(nlgn)。 一般树结构指的是二叉查找树,二叉查找树是在很多应用程序中都有使用的两个集合类set和map的实现基础。 基础 定义树一般用递归的方式实现。 ...原创 2019-09-12 23:10:42 · 318 阅读 · 0 评论 -
数据结构与算法---快速排序
快速排序的基本思想: 递归的实现上面的步骤,用归纳法证明是最终的结果一定是排序后的结果:如果左子数组和右子数组都是有序的,且切分元素在两者之间,那么最终的排序结果显而易见是有序的。 代码 partition的作用是随机找一个pivot 切分 参考 https://wiki.jikexueyuan.com/project/easy-learn-algorithm/fast-sort.html...原创 2019-09-20 14:22:39 · 198 阅读 · 0 评论 -
数据结构与算法---遍历二叉树
二叉树 概念:父节点,左儿子、右儿子 6是根节点,同时6也是父节点,2是6的左儿子,8是6的右儿子。 遍历策略 前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 三个一起记则很好记。 栈stack 为了遍历二叉树,我们把遍历的节点压入栈,打印一个则出栈。 Java中创建栈: Stack<Node> stack = new Stack<>(); 前序遍历 遍历策略:...原创 2019-10-03 19:00:38 · 333 阅读 · 0 评论 -
刷题---剪绳子(动态规划)
剪绳子 这道题与算法导论中的钢条切割问题很相似。除了最优化目标不同:钢条切割是在不同长度的钢条有不同的收益的基础上如何切割钢条使收益变得最大,这里减绳子是要剪成不同长度的绳子如何剪绳子使各个绳子长度的乘积最大。 我们先用暴力求解的递归方法思考: cut-ro# 剪绳子 这道题与算法导论中的钢条切割问题很相似。除了最优化目标不同:钢条切割是在不同长度的钢条有不同的收益的基础上如何切割钢条使收益变...原创 2019-10-05 18:11:24 · 822 阅读 · 0 评论