04 2022 档案

摘要:贪心算法,突出一个贪心,总是有想用最低的成本完成任务。 贪心算法的步骤 1.首先要抓准期望值和限制值,当我们针对要解决的问题,可以数据抽象出期望值和限制值时,就要首先联想到贪心算法了。我们希望在满足限制值的同时,期望值最大。 2.我们尝试看下这个问题是否可以用贪心算法解决:每次选择当前情况下,在对限 阅读全文
posted @ 2022-04-29 22:11 codemelo 阅读(58) 评论(0) 推荐(0) 编辑
摘要:BF算法 bf算法(brute force)顾名思义,是很暴力,很朴素的算法,我们把想要匹配的字符串叫做模式串,通俗理解来说就是模板,把被进行搜索来查找有无匹配的子串的字符串叫做主串,比如用户输入的字符串。bf算法是这样的:假设主串长度为n,模式串的长度对我们从主串的初始位置0开始,每次查找长度为m 阅读全文
posted @ 2022-04-29 12:19 codemelo 阅读(99) 评论(0) 推荐(0) 编辑
摘要:广度优先搜索(Bradth - First - Search)和深度优先搜索(Depth - First - Search)是基于图的两个搜索算法。 广度优先搜索 广度优先搜索,类似于地毯式搜索,我们从起始顶点开始,先访问最近一层的所有顶点,然后次近一层的所有顶点,这样一层层地访问下去,一旦访问到目 阅读全文
posted @ 2022-04-28 10:38 codemelo 阅读(25) 评论(0) 推荐(0) 编辑
摘要:图是一种非线性结构,比树更复杂。 图也是由一个个点组成的,在图中,我们把每个点叫做顶点(vertex)。 图中的任意一个顶点可以和其他顶点建立连接联系,这种关系叫做边。 一个顶点与其他顶点建立连接关系的总数叫做度,即顶点的边的条数。 很多社交软件都是用图来保存用户之间的关系,以微信和微博来说,微信和 阅读全文
posted @ 2022-04-28 10:13 codemelo 阅读(205) 评论(0) 推荐(0) 编辑
摘要:跳表其实就是对链表进行改造,使链表能够进行类似于二分查找的算法。 我们知道,链表虽然内存消耗低,但是查询效率很低,想要去提高这个查询效率,我们可以参考下数组,数组为什么查询快?因为它是直接使用的偏移公式,按下标读取。那么我们可以参考这个思路,每隔一些结点就标记一下,比如每隔两个,这样类似于二分,把这 阅读全文
posted @ 2022-04-27 21:24 codemelo 阅读(138) 评论(0) 推荐(0) 编辑
摘要:堆是一种特殊的树,只要某棵树满足这两点,那么它就是树: 1.是一个完全二叉树。 2.该树的每个节点小于等于或者大于等于左右子树的所有节点的值,注意这不是像二叉查找树那种左小右大,而是要么左右都是小于等于,要么左右都是大于等于。、 小于等于的话叫做小顶堆,大于等于的话叫做大顶堆。 图中4不是堆,其他都 阅读全文
posted @ 2022-04-26 16:40 codemelo 阅读(163) 评论(0) 推荐(0) 编辑
摘要:树 树是由一个个节点组成的,最上层的节点叫做根节点,节点可以衍生出节点,相互之间是父子关系,同样,属于同一个父节点的叫兄弟节点,如果一个节点没有子节点,那么这个节点叫叶子节点或者叶节点,注意,树有一个很明显的特征:任意三个及以上的节点都不能形成闭合,即同一层的节点不连通,兄弟节点之间不能共享节点 树 阅读全文
posted @ 2022-04-25 21:17 codemelo 阅读(84) 评论(0) 推荐(0) 编辑
摘要:1.最重要的一点,要有驱动力,这是一切行动的基础。而且本身我们想去学习时,肯定都是有原因的,这个原因其实就是我们的驱动力。 2.明确学习目标,这个不必多说,没目标,你根本就不知道该做什么。 3.将大目标拆解成小目标,这样你能明确每一步该做什么,就能逐渐走向终点,并且小目标都更容易完成,去除了大目标的 阅读全文
posted @ 2022-04-25 11:16 codemelo 阅读(124) 评论(0) 推荐(0) 编辑
摘要:散列表,顾名思义,就是数据分散在列表中,也叫哈希表,散列表依赖于数组随机下标访问的特性,本质上是数组的一种拓展,有数组演化而来,可以说,没有数组就没有散列表。 散列思想 散列思想其实就是映射思想,即用键值对来保存信息,键(key)和值(value)之间的映射法则叫做散列函数(也叫Hash函数或哈希函 阅读全文
posted @ 2022-04-21 22:26 codemelo 阅读(537) 评论(0) 推荐(0) 编辑
摘要:如何分析一个排序算法? 执行效率 ①算出最好,最坏,平均时间复杂度,还要说出最好和最坏复杂度对应的原始数据是怎样的。 因为有些排序算法是进行了三个复杂度的区分,所以最好所有排序算法都进行区分,方便比较。 其次,要说出原始数据是因为有些原始数据非常无序,有些已经接近有序,有序度不同的数据,肯定会造成排 阅读全文
posted @ 2022-04-20 20:16 codemelo 阅读(57) 评论(0) 推荐(0) 编辑
摘要:写递归代码的关键点 ①写出递推公式,找到终止条件 ②我们看到递归时,我们总想把递归平铺展开,脑子里就会循环,一层一层往下调,然后再一层一层返回,试图想搞清楚计算机每一步都是怎么执行的,这样就很容易被绕进去。对于递归代码,这种试图想清楚整个递和归过程的做法,实际上是进入了一个思维误区。很多时候,我们理 阅读全文
posted @ 2022-04-17 22:21 codemelo 阅读(36) 评论(0) 推荐(0) 编辑
摘要:队列与栈类似,都是基于数组或者链表,都只有入和出两个操作,不过有两点不同 ①栈先进后出,队列先进先出 ②栈只需要一个栈顶指针,队列则需要一头一尾两个指针,这两个是当前队列的界限 队列的出队和入队该怎么做呢? 我们将使用循环队列,因为如果不形成循环队列,当tail指到了数组尽头,再有入队操作时,就得扩 阅读全文
posted @ 2022-04-17 16:56 codemelo 阅读(50) 评论(0) 推荐(0) 编辑
摘要:二分查找,简单来说就是在给定的数据范围,每次取完中间数后,就二分缩小范围(范围的最小值或者最大值,其中一个变成前一次范围的中间值),直到范围区间只有一个数或者找到想要的数。 举个例子 我们假设只有 10 个订单,订单金额分别是:8,11,19,23,27,33,45,55,67,98。还是利用二分思 阅读全文
posted @ 2022-04-17 16:02 codemelo 阅读(92) 评论(0) 推荐(0) 编辑
摘要:链表和数组不同,数组是必须要连续内存空间,链表是通过指针将零碎的内存空间串联起来 常见的链表有单链表,双向链表,循环链表 单向链表 单向链表每个数据后面都会有一个叫next的结点,头结点是记录链表的基地址,也就是链表第一个元素,尾结点指向null,代表链表结束,其他元素的结点均是指向下个元素。 所以 阅读全文
posted @ 2022-04-15 16:21 codemelo 阅读(70) 评论(0) 推荐(0) 编辑
摘要:时间空间复杂度是衡量代码执行效率的一个重要指标。 事后统计法依赖于测试环境,会受极端数据规模的影响,所以时间空间复杂度分析就应运而生了 大O时间复杂度表示法 T(n)代表代码执行的时间,f(n)代表每行代码执行次数的总和,O是代表前面两个变量成正比,n是数据规模 大O时间复杂度实际上并不代表代码具真 阅读全文
posted @ 2022-04-11 09:26 codemelo 阅读(215) 评论(0) 推荐(0) 编辑
摘要:在java,很多时我们需要通过外部配置文件,在不修改源码的情况下,控制程序(这符合设计模式的开闭原则(ocp原则),即不修改源码,扩容功能) 于是,为了方便这种需求,java提供了反射(reflection)机制 反射 我们知道,在加载完某个类之后,堆中会产生一个相应的并且唯一的class对象,这个 阅读全文
posted @ 2022-04-10 08:47 codemelo 阅读(29) 评论(0) 推荐(0) 编辑
摘要:网络通信 概念:通过网络,将数据从一台设备传输到另一台设备 在java中,网络通信一般用java.net这个包的类和接口 网络 概念:两台或多台设备通过物理设备连接起来的网,叫做网络 根据网络覆盖范围不同,可做以下分类 局域网:覆盖范围最小,仅仅覆盖一个教室或者一个机房 城域网:覆盖范围较大,可以覆 阅读全文
posted @ 2022-04-08 09:33 codemelo 阅读(285) 评论(0) 推荐(0) 编辑
摘要:并发 计算机同时存在多个运行的程序,需要os的调度和管理 共享 1.“同时”访问 2.互斥共享 虚拟 利用多道程序设计技术,让每个用户都觉得有一台计算机来为他服务 异步 程序的执行不是一贯到底的,而是走走停停,前进的速度不可预知,但只要运行环境相同,os需要保证程序在同样的输入下,输出结果要相同 阅读全文
posted @ 2022-04-05 19:26 codemelo 阅读(40) 评论(0) 推荐(0) 编辑
摘要:文件流 文件在程序中是以流的形式来操作的。 流:数据在数据源文件(位于磁盘)和程序(位于内存)之间传输时经过的路径 流分为输入和输出流,这个输入输出是相对于内存而言的,即如下图 ①FileWriter一定要关闭流或者flush才能真正把数据写入到文件,因为看源码可以知道把数据写入到文件的关键方法是w 阅读全文
posted @ 2022-04-02 07:32 codemelo 阅读(549) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示