Data Structure and Algorithm
数据结构与算法
黎先生你好
这个作者很懒,什么都没留下…
展开
-
斐波那契数列求解的几种方法
斐波那契数列的定义是f(n + 1) = f(n) + f(n - 1),生成第 n 项的做法有以下3种。1. 递归法:1.1 原理递归法求解的原理是把 f(n)问题的计算拆分成 f(n-1)和 f(n-2) 两个子问题的计算,并递归,以 f(0)和 f(1)为终止条件。缺点: 大量重复的递归计算,例如 f(n) 和 f(n - 1)两者向下递归需要 各自计算 f(n - 2)的值。通过下...原创 2020-03-30 03:34:47 · 3941 阅读 · 0 评论 -
Python实现十大经典排序算法
算法分类分类排序算法大致可以分为两类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b...原创 2020-03-20 10:28:23 · 886 阅读 · 0 评论 -
树的遍历
树的中序遍历(前序、后序同理)题目来源:leetcode给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?# Definition for a binary tree node.# class TreeNode:# ...原创 2020-02-14 20:54:40 · 136 阅读 · 0 评论 -
非递归方式实现树的遍历
本文转载自作者:hzhu212链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/solution/yan-se-biao-ji-fa-yi-chong-tong-yong-qie-jian-ming/来源:力扣(LeetCode)官方题解中介绍了三种方法来完成树的中序遍历,包括:递归借助栈的迭代方法莫里...转载 2020-02-14 19:44:49 · 297 阅读 · 0 评论 -
树的旋转
Figure 1.1 和 Figure 1.2 (wikipedia, 2020)动态演示了树的旋转过程。Figure 1.1 rotation(dynamic)Figure 1.2 tree rotation(static)以下是树的左右旋在python中的实现,参考(再见紫罗兰, 2020). def singleRighttRotate(self,node): # node ...原创 2020-01-28 05:05:58 · 350 阅读 · 0 评论