-
自己动手实现java数据结构(二) 链表
所属栏目:[安全] 日期:2020-12-15 热度:99
1.链表介绍 前面我们已经介绍了向量,向量是基于数组进行数据存储的 线性表 。今天,要介绍的是线性表的另一种实现方式--- 链表 。 链表和向量都是线性表,从使用者的角度上依然被视为一个线性的列表结构。但是,链表内部存储数据的方式却和向量大不相同:链[详细]
-
二叉树
所属栏目:[安全] 日期:2020-12-15 热度:143
原文链接:http://www.orlion.ga/267/ 为什么使用二叉树呢?因为它通常结合了另外两种数据结构的优点:一种是有序数组,另一种是链表。在树中查找数据项的速度和在有序数组中查找一样快,并且插入数据项和删除数据项的速度也和链表一样。 ? 二叉搜索树: 非[详细]
-
栈-java代码
所属栏目:[安全] 日期:2020-12-15 热度:104
import java.util.Arrays; public class StackDemo { private int maxSize; long [] stackArray; top; // 构造器 public StackDemo( s){ 初始化栈 maxSize = s; stackArray = new [maxSize]; top = -1 ; } 入栈 void push( element){ stackArray[ ++top] = e[详细]
-
队列-java代码
所属栏目:[安全] 日期:2020-12-15 热度:166
public class QueueDemo { private int maxSize; long [] queueArray; // 队列的头,实际是数组的尾 header; 队列的尾,实际是数组的头 footer; nElems; public QueueDemo( size){ maxSize = size; queueArray = new [maxSize]; header = 0 ; footer = -1 ;[详细]
-
图(C描述)
所属栏目:[安全] 日期:2020-12-15 热度:64
一、概念 图是由顶点的非空有限集合V(由N0个顶点组成)与边的集合E(顶点之间的关系)构成。边没有方向的图成为无向图,反之为有向图 ? 无向图: 有向图: 二、图的表示 常见的图的存储方法有两种:邻接矩阵存储法与邻接表存储法 1、邻接矩阵 邻 接矩阵存储法[详细]
-
红黑树
所属栏目:[安全] 日期:2020-12-15 热度:148
原文链接:http://www.orlion.ga/384/ 一、红黑树?? ? ????1、普通的二叉树有一个问题,当插入的数据是有序的时候,二叉树就是非平衡的了,而对于非平衡树它的快速查找(插入、删除)指定数据项的能力就丧失了。红黑树就是一种解决非平衡树的方法,它是增加了[详细]
-
算法图解之散列表
所属栏目:[安全] 日期:2020-12-15 热度:90
散列函数 专业术语表述,”将输入映射到数字”。 散列函数具有如下要求: (1)它必须是一致的。 如你输入blog得到的是wordpress,那么每次输入blog,得到的都必须为wordpress。 (2)它应将不同的输入映射到不同的数字。 如,如果一个散列函数不管输入是什么都返[详细]
-
算法图解之二分查找
所属栏目:[安全] 日期:2020-12-15 热度:71
简单查找,如下图: ? 从图可知那个眼镜男从1开始猜,猜到100,大家都知道这种猜法最终都会得到答案,就是时间问题而已。100毕竟是这个列表的最大长度。但是换言之,如果是一万、百万、上千亿呢?那么这种猜法虽然能够得到答案,但是时间方面的成本将会非常大[详细]
-
<数据结构与算法分析>读书笔记--运行时间中的对数及其分析
所属栏目:[安全] 日期:2020-12-15 热度:58
分析算法最混乱的方面大概集中在对数上面。我们已经看到,某些分治算法将以O(N log N)时间运行。此外,对数最常出现的规律可概括为下列一般法则: 如果一个算法用常数时间(O(1))将问题的大小削减为其一部分(通常是1/2),那么该算法就是O(logN)。另一方面,如[详细]
-
<数据结构与算法分析>读书笔记--最大子序列和问题的求解
所属栏目:[安全] 日期:2020-12-15 热度:143
? 现在我们将要叙述四个算法来求解早先提出的最大子序列和问题。 第一个算法,它只是穷举式地尝试所有的可能。for循环中的循环变量反映了Java中数组从0开始而不是从1开始这样一个事实。还有,本算法并不计算实际的子序列;实际的计算还要添加一些额外的代码[详细]
-
<数据结构与算法分析>读书笔记--实现泛型构件pre-Java5
所属栏目:[安全] 日期:2020-12-15 热度:168
? 面向对象的一个重要目标是对代码重用的支持。支持这个目标的一个重要的机制就是泛型机制:如果除去对象的基本类型外,实现的方法是相同的,那么我们就可以用泛型实现来描述这种基本的功能。 ? ? 1.使用Object表示泛型 Java中的基本思想就是可以通过使用像Ob[详细]
-
算法图解之递归
所属栏目:[安全] 日期:2020-12-15 热度:94
图一: ? ?图二: ? ? ? 图一和图二对比,它们的作用都是相同的。从流程上分析,图一流程相对比较复杂,而图二则简单明了, 这是某位同行在stackoverflow上面说过的话:如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易死理解。如何选择要看什么[详细]
-
算法图解之大O表示法
所属栏目:[安全] 日期:2020-12-15 热度:69
大O表示法 大O表示法是一种特殊的表示法,指出了算法的速度有多快。 1.算法的运行时间以不同的速度增加 关于算法的运行时间以不同的速度增加,我联系到平时写代码,严谨的代码(易读,可扩展,精悍,经过多方测试等),通常运行速度与那些不严谨的代码(完全相[详细]
-
算法图解之广度优先搜索
所属栏目:[安全] 日期:2020-12-15 热度:175
广度优先搜索的应用场景,如下: (1)编写国际跳棋AI,计算最少走多少步就可获胜; (2)编写拼写检查器,计算最少编辑多个地方就可将错拼的单词改为正确的单词,如将READED改为READER需要编辑一个地方; (3)根据你的人际关系网络找到关系最近的医生; 图简介 假设[详细]
-
算法图解之内存的工作原理
所属栏目:[安全] 日期:2020-12-15 热度:104
? 其中fe0ffeeb是一个内存单元的地址,需要将数据存储到内存时,你请求计算机提供存储空间,计算机给你一个存储地址。需要存储多项数据时,有两种基本方式,一种是数组,另外一种是链表。但它们并非都适用于所有情形,因此知道它们的差别非常重要。[详细]
-
算法图解之快速排序
所属栏目:[安全] 日期:2020-12-15 热度:63
分而治之(又称DC) 书中举了一个例子,假设你是农场主,有一块土地,如图所示: ? 你要将这块地均匀分成方块,且分出的方块要尽可能大。 ? ? 从图上看,显然是不符合预期结果的。 那么如何将一块地均匀分成方块,并确保分出的方块是最大的呢?使用DC策略。 (1)[详细]
-
<数据结构与算法分析>读书笔记--利用Java5泛型实现泛型构
所属栏目:[安全] 日期:2020-12-15 热度:112
? 一、简单的泛型类和接口 当指定一个泛型类时,类的声明则包括一个或多个类型参数,这些参数被放入在类名后面的一对尖括号内。 示例一: package cn.generic.example; public class GenericMemoryCell AnyType { public AnyType read() { return storedValue[详细]
-
老黄牛读后感
所属栏目:[安全] 日期:2020-12-15 热度:124
感悟: 有句话叫做,一千个人里面就有一千个哈姆莱特,通常表示着不同的人对某个事物看法不同。 今天再读这篇文章时,联想到2018年的程序员跳楼事件。至于为什么跳楼,真相究竟是什么,这里不作探究。这里想说的是,放眼整个世界,每天都有像老黄牛这样的例子[详细]
-
<数据结构与算法分析>读书笔记--模型
所属栏目:[安全] 日期:2020-12-15 热度:61
为了在正式的构架中分析算法,我们需要一个计算模型。我们的模型基本上是一台标准的计算机,在机器中指令被顺序地执行。该模型有一个标准的简单指令系统,如加法、乘法、比较和赋值等。但不同于实际计算机情况的是,模型机做任一简单的工作都恰好花费一个时[详细]
-
<数据结构与算法分析>读书笔记--函数对象
所属栏目:[安全] 日期:2020-12-15 热度:162
关于函数对象,百度百科对它是这样定义的: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。又称仿函数。 ? 听起来确实很难懂,通过搜索我找到一篇博客,作者对其是这样的描述: 如果把对象理解成指针的话,[详细]
-
<数据结构与算法分析>读书笔记--运行时间计算
所属栏目:[安全] 日期:2020-12-15 热度:135
有几种方法估计一个程序的运行时间。前面的表是凭经验得到的(可以参考:数据结构与算法分析读书笔记--要分析的问题) 如果认为两个程序花费大致相同的时间,要确定哪个程序更快的最好方法很可能将它们编码并运行。 一般地,存在几种算法思想,而我们总愿意尽早[详细]
-
<数据结构与算法分析>读书笔记--要分析的问题
所属栏目:[安全] 日期:2020-12-15 热度:145
通常,要分析的最重要的资源就是运行时间。有几个因素影响着程序的运行时间。有些因素(如使用编译器和计算机)显然超出了任何理论模型的范畴,因此,虽然它们是重要的,但是我们在这里还是不能考虑它们。剩下的主要因素是所使用的算法以及对该算法的输入。 典[详细]
-
算法图解之选择排序
所属栏目:[安全] 日期:2020-12-15 热度:65
假设你的计算机存储了很多乐趣。对于每个乐队,你都记录了其作品被播放的次数。 如果你要将这个列表按播放次数从多到少的顺序排列,从而将你喜欢的乐队排序。该如何做呢? 我第一眼看到这个问题时,想到的是通过sql解决这个问题 假设如果这是一个数据表的话,[详细]
-
算法图解之数组和链表
所属栏目:[安全] 日期:2020-12-15 热度:88
数组和链表 1.数组 以添加第四个待办事项为例,但后面的那个抽屉已经放了别人的东西 这就像你与朋友去看电影,找到地方就坐后又来了一位朋友,但原来坐的地方没有空位置,只得再找一个方可坐下所有人的地方。在这种情况下,你需要请求计算机重新分配一块可容[详细]
-
<数据结构与算法分析>读书笔记--数学知识复习
所属栏目:[安全] 日期:2020-12-15 热度:138
数学知识复习是《数据结构与算法分析》的第一章引论的第二小节,之所以放在后面,是因为我对数学确实有些恐惧感。不过再怎么恐惧也是要面对的。 ? 一、指数 基本公式: ? ?二、对数 在计算机科学中除非有特别的声明,否则所有的对数都是以2为底的。 定义:X A[详细]
- twitter-bootstrap – 摆脱Twitter Bootstrap缩略
- bootstrap栅格布局-v客学院知识分享
- Bootstrap 徽章(Badges)
- twitter-bootstrap – Twitter Bootstrap PopOve
- angularjs – 如何在ng-repeat中将焦点设置在最后
- shell printf命令:格式化输出语句
- docker 非root用户修改mount到容器的文件出现“O
- angularjs – 从指令中访问其他元素的ng-model
- scala.concurrent.blocking的坏用例?
- twitter-bootstrap – Bootstrap tour需要清除缓