菜鸟笔记
提升您的技术认知

算法笔记

【数据结构】队列(queue)

菜鸟阅读 : 335赞(0)

1、队列的基本结构 队列(queue)是一种线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删除,插入元素的一端称为队尾(rear),删除元素的一端称为队首(front)。从队列中删除元素称为离队或出队,元素出队后,其后续元素成...

【数据结构】BitMap

菜鸟阅读 : 598赞(0)

一、BitMap介绍 BitMap,即位图,使用每个位表示某种状态,适合处理整型的海量数据。本质上是哈希表的一种应用实现,原理也很简单,给定一个int整型数据,将该int整数映射到对应的位上,并将该位由0改为1。例如: // 存在一个int...

归并排序算法

菜鸟阅读 : 423赞(0)

归并排序介绍 将两个的有序数列合并成一个有序数列,我们称之为"归并"。 归并排序(Merge Sort)就是利用归并思想对数列进行排序。根据具体的实现,归并排序包括"从上往下"和"从下往上"2种方式。 1. 从下往上的归并排序:将...

拓扑排序算法

菜鸟阅读 : 867赞(0)

拓扑排序介绍 拓扑排序(Topological Order)是指,将一个有向无环图(Directed Acyclic Graph简称DAG)进行排序进而得到一个有序的线性序列。 这样说,可能理解起来比较抽象。下面通过简单的例子进行说明! 例...

01背包问题

菜鸟阅读 : 414赞(0)

介绍 有N件物品和一个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 分析 优化后的代码  public class ...

算法设计与分析(贪心法)

菜鸟阅读 : 292赞(0)

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己...

最优二叉树(赫夫曼树)

菜鸟阅读 : 431赞(0)

首先我们来看一个伪代码。这个是代表成绩的等级。 然后我们知道,每一次高考,学生的成绩分布应该接近某个比例,现在我们假如分别规律如下: 为此可以作出下面的这个树。 我们发现,概率分布主要是在70-79,80-89之间,如果有很多数据要比较,那...

图的存储结构(邻接表)

菜鸟阅读 : 325赞(0)

为什么要采用邻接表: 对于边数相对顶点较少的图,这种结构无疑是存储空间的极大浪费。 所以把数组和链表结合起来存储,这种方式在图结构中适用,称为邻接表(AdjacencyList) 邻接表的处理方法如下: -顶点用一个一位数组存储(也可以用单...

图的存储结构(邻接矩阵)

菜鸟阅读 : 334赞(0)

邻接矩阵(无向图) 因为图是由顶点和边或弧组成的,所以最好是把他们分开存储。 下面来看无向图的邻接矩阵。 图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图。 如下图所示: 由上图可以很明显的看出0表示不存在顶点间...

拓扑排序

菜鸟阅读 : 351赞(0)

一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图。 在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网(Active On Ver...