随笔分类 - 数据结构
摘要:二叉树(binary tree)和哈希表(hash table)都是很基本的数据结构,但是我们要怎么从两者之间进行选择呢?他们的不同是什么?优缺点分别是什么? 回答这个问题不是一两句话可以说清楚的,原因是在不同的情况下,选择的依据肯定也不同。首先来回顾一下这两个数据结构: 哈希表使用hash fun
阅读全文
摘要:之前的博客已经介绍过各种排序算法的基本介绍,详情见: "Python数据结构应用5——排序(Sorting)" 。由于找工作需要,这里总结了一下这些排序算法的区别与选择依据。 影响排序的因素有很多,平均时间复杂度低的算法并不一定就是最优的。相反,有时平均时间复杂度高的算法可能更适合某些特殊情况。一般
阅读全文
摘要:二叉树的遍历是在面试使比较常见的项目了。对于二叉树的前中后层序遍历,每种遍历都可以递归和循环两种实现方法,且每种遍历的递归实现都比循环实现要简洁。下面做一个小结。 一、中序遍历 前中后序三种遍历方法对于左右结点的遍历顺序都是一样的(先左后右),唯一不同的就是根节点的出现位置。对于中序遍历来说,根结点
阅读全文
摘要:碎碎念 : 最近终于开始刷middle的题了,对于我这个小渣渣确实有点难度,经常一两个小时写出一道题来。在开始写的几道题中,发现大神在discuss中用到回溯法(Backtracking)的概率明显增大。感觉如果要顺利的把题刷下去,必须先要把做的几道题题总结一下。 先放上参考的web: 1. htt
阅读全文
摘要:终于刷完了leetcode的前250道题的easy篇。好吧,其实也就60多道题,但是其中的套路还是值得被记录的。 至于全部code,请移步 "github" ,题目大部分采用python3,小部分使用C,如有问题和建议,欢迎指正。 String 1. 有一个string库,可以返回各种string的
阅读全文
摘要:数据结构中的树的结点和机器学习中决策树的结点有一个很大的不同就是,数据结构中的树的每个叶结点都是独立的。 树的高度(Height)指叶结点的最大层树(不包含根结点) 一、树的建立 树可以这样定义:一棵树由一系列结点和一系列连接结点的边组成 树也可以这样定义: 一棵树有根和其他子树组成,这些子树也是树
阅读全文
摘要:在具体算法之前,首先来看一下排序算法衡量的标准: 1. 比较:比较两个数的大小的次数所花费的时间。 2. 交换:当发现某个数不在适当的位置时,将其交换到合适位置花费的时间。 冒泡排序(Bubble Sort) 这是一个面试经常考的排序,虽然简单,但是要保证一点都不出错也不简单。 冒泡,顾名思义,每一
阅读全文
摘要:Search是数据结构中最基础的应用之一了,在python中,search有一个非常简单的方法如下: False 不过这只是search的一种形式,下面列出多种形式的search用做记录: 一、顺序搜索 顺着list中的元素一个个找,找到了返回True,没找到返回False False True 二
阅读全文
摘要:linked list(链表) 建立 Node 链表的基本组成就是一个个Node,每个Node都需要包括两部分内容,一部分是自身的data,另一部分是下一个Node的reference。 class Node: def __init__(self, init_data): self.data = i
阅读全文
摘要:Reference: Problem Solving with Algorithms and Data Structures, Release 3.0 队列 Queue 建立 class Queue: def __init__(self): self.items = [] def is_empty(
阅读全文
摘要:Reference: Problem Solving with Algorithms and Data Structures, Release 3.0 自学一下数据结构,学完之后刷leetcode,使用python,从stack开始 Stack建立 以上stack的top位置位于list的endin
阅读全文


浙公网安备 33010602011771号