数据结构-算法
庄ZY颜
这个作者很懒,什么都没留下…
展开
-
【数据结构】Java实现单链表
单链表的数据结构相对构建比较简单package DataStructure;class Node{ public int data; public Node next; Node(int data){ this.data=data; } public void display(){ System.out.print(" "+data)原创 2015-12-12 00:27:11 · 305 阅读 · 0 评论 -
【数据结构】Java实现图的DFS和BFS
图的深度优先遍历(DFS)和广度优先遍历(BFS),DFS利用递归来实现比较易懂,DFS非递归就是将需要的递归的元素利用一个栈Stack来实现,以达到递归时候的顺序,而BFS则是利用一个队列Queue来实现。package DataStructure;import java.util.LinkedList; import java.util.Queue; import java.util.S原创 2015-12-12 00:43:22 · 10206 阅读 · 2 评论 -
贝叶斯算法Java实现
前言:朴素贝叶斯分类算法是一种基于贝叶斯定理的简单概率分类算法。贝叶斯分类的基础是概率推理,就是在各种条件的存在不确定,仅知其出现概率的情况下,如何完成推理和决策任务。概率推理是与确定性推理相对应的。而朴素贝叶斯分类器是基于独立假设的,即假设样本每个特征与其他特征都不相关。朴素贝叶斯分类器依靠精确的自然概率模型,在有监督学习的样本集中能获取得非常好的分类效果。在许多实际应用中,朴素贝叶斯模型参数估计原创 2015-12-21 18:50:21 · 9103 阅读 · 1 评论 -
构造回文
题目: 思路:把原序列和原序列的反序列做比较,求最大共同子串(DP),然后用原长度减去共同子串的长度,即可得出原序列;例如:abcda 做DP 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0 1 1 1 1 1 2 0 1 1 1 2 2 3 0 1 1 2 2 2 4 0 1 2 2 2 2 5 0 2 2 2 2 3 求出最大相同的代码如原创 2016-09-11 10:08:18 · 327 阅读 · 0 评论 -
LRU算法实现
最近发现LRU在缓存使用的较多,特意回头来看看自己以前上机实现的代码原理: 最近最久未使用页面置换算法(LRU) 当需要淘汰某一页时,选择在最近一段时间里最久没有被使用过的页淘汰。 其基本原理为:如果某一个页面被访问了,它很可能还要被访问;相反,如果它长时间不被访问,再最近未来是不大可能被访问的。LRU采用页号栈的实现方法。最近访问的页放在栈顶,较早访问的页往栈底移动。总是先淘汰处于栈底的页。原创 2016-08-31 17:08:28 · 5503 阅读 · 1 评论 -
常用排序算法(冒泡、选择、归并、快排、插入)
冒泡排序(时间复杂度On^2 空间复杂度O1)稳定步骤: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 //冒泡排序改进版 void BubbleSor原创 2015-12-21 19:49:36 · 430 阅读 · 0 评论