java数据结构
林老师带你学编程
www.wolzq.com
展开
-
java数据结构之顺序表
1.顺序表中按位置随机访问的时间复杂度为O(1);2.顺序表中的在给定位置插入或者删除需要移动差不多一半的以上的元素,所以时间复杂度为O(n);3.存储密度=数据占用的存储量/整个结点占用的存储量。根据这个公式可以得出顺序表的存储密度为1;所以可以得出以下结论:线性表一般作为查询频繁,插入或者删除比较少的场景下使用。空间使用率上面是比较高的。下面直接上代码举例说明:publ原创 2016-05-29 20:54:30 · 2211 阅读 · 0 评论 -
字符串匹配的KMP算法
关于字符串匹配KMP算法其实不难,只要理解字符串下一步匹配需要移动的个数就可以了,但是说是这么说,实际理解肯定会有或多或少的问题,要是大家看完之后还是有问题有疑问的同学,可以再文章底部加我~字符串匹配的KMP算法字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,...转载 2018-05-05 15:07:59 · 305 阅读 · 0 评论 -
最新Java面试题
这些是本人最近找工作,具体问到的面试题。这边我没有给出标准的答案,大家可以自行谷歌,自己理解的肯定要比别人说的要深刻。好了下面具体看看题目!!!1.旧系统的数据库如何和新系统数据库进行同步?数据库的表和字段都不一样,旧系统代码不能做任何的修改)canal(本身数据堆积能力不是特别强)+RocketMQ进行异步数据库的同步2.elk(Elasticsearch , Logstash, Kibana ...原创 2018-05-08 22:20:46 · 852 阅读 · 0 评论 -
各种排序算法的分析及java实现
各种排序算法的分析及java实现 排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为转载 2016-08-04 14:30:32 · 619 阅读 · 0 评论 -
java数据结构之二叉树的前中后遍历
感谢笃志近思的分享。原文链接地址为:点击打开链接二叉树的定义:二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别转载 2016-06-20 17:16:18 · 3001 阅读 · 0 评论 -
java数据结构之字符串的模式匹配算法
java中String提供了很多的字符串处理方法其中就包括子串的匹配。今天就来介绍一下字符串中的子串的匹配算法。分为两种:一种为朴素的模式匹配算法(简称BF算法),改进的模式匹配算法(简称KMP算法)。下面首先来介绍一下BF算法的中心思想:这是一种带有回溯的匹配算法,简称BF算法。实现过程是从主串S的第一个字符开始和模式T的第一个字符开始比较,若相等则继续比较二者后续的的字符;否则从主原创 2016-06-07 11:18:00 · 1864 阅读 · 1 评论 -
java数据结构之链式队列的实现
今天介绍一下数据结构中的链式队列,和线形队列相同的是它也有队头front,和队尾rear。规则和线形队列相同也是先进先出(FIFO),队尾进,队头出。下面看具体的链式队列的具体实现案例:package queue;/** * @ClassName: CirQueue * @Description: 链式队列 * @date 2016年6月3日 下午19:55 * @param原创 2016-06-03 21:45:44 · 3012 阅读 · 0 评论 -
java数据结构之线性队列的实现
今天介绍一下数据结构中的线性队列以及线性队列中的缺点,和改善线性队列的循环线性队列操作。队列的定义:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。(1)允许删除的一端称为队头(Front)。(2)允许插入的一端称为队尾(Rear)。(3)当队列中没有元素时称为空队列。(4)队列亦称作先进先出(First In First原创 2016-06-03 21:38:55 · 1442 阅读 · 0 评论 -
java数据结构之(顺序栈+链式栈)
今天介绍一下数据结构中的栈。栈实现和线性表实现差不多都是有两种实现方式,一种是顺序栈,另一种就是链式栈。下面先介绍一下顺序栈的实现方式:package stack;import java.util.Arrays;/** * @ClassName: ArrayStack * @Description: 顺序栈 * @date 2016年6月2日 下午21:01 * @param原创 2016-06-02 21:57:10 · 1276 阅读 · 0 评论 -
java数据结构举例-幻方实现
今天介绍一下数组的一些例子,例如利用数组实现幻方。幻方又叫做魔方阵,幻方阵,游戏规则是在一个n*n的矩阵中填入1到n*n的数字,使得买一行,每一列,每条对角线的累加相等。java算法的实现:package array;public class ArrayHF { //幻方的实现 public int[][] sQueue(int n){ int[][] a=new int[n原创 2016-06-07 18:10:47 · 2677 阅读 · 0 评论 -
java数据结构凯撒算法的实现
今天介绍一下凯撒密码的实现,凯撒密码核心是基于字符串实现的。凯撒密码中心思想:凯撒密码是一种简单的信息加密方法,通过将信息中的每个字母在字母表中后移动常量k,以实现加密。java的算法实现:package string;public class S_KaiSa { //凯撒密码的实现 public char[] kaiSa(char[] s,int k){ char[] t=原创 2016-06-07 18:01:50 · 1602 阅读 · 0 评论 -
java数据结构之顺序表应用之大整数求和
本章讲顺序表的应用之大整数求和。java中int,long,float,double都有他们自己的精度值,如果超过精度就没办法进行运算了。这里可以用顺序表进行大整数运算。下面上代码看具体案例,进行解析:package SequenceList;public class LargeIntegerSum { public int[] add(int aa[],int bb[]){ in原创 2016-06-01 22:29:22 · 1533 阅读 · 0 评论 -
java数据结构之单链表应用之一元多项式求和
利用java中单链表进行一元多项式求和,下面直接看案例分析:package LinkedList;import LinkedList.Elem.Node;public class LinkedAdd { public Node add(Elem e1,Elem e2){ Node pre=e1.getNode(); Node qre=e2.getNode(); Node p=原创 2016-06-01 22:36:28 · 6046 阅读 · 0 评论 -
java数据结构之多维数组实现
多维数组其实就是数组的一种扩展形式。这里介绍几种特殊的多维数组即特殊的矩阵。1.对称矩阵的压缩存储算法:矩阵中的所有数据通过一定的规律存储在一维数组中。其中k=j*(j-1)/2+i-1。其中j和i是矩阵中的j和i而k是一维数组的下标号。2.三角矩阵的压缩存储:矩阵下标i和j的在一维数组k中对应的公式为:当ik=i*(i-1)/2+j-1;当i>jk=n*(n+1)原创 2016-06-07 11:52:56 · 2123 阅读 · 0 评论 -
java数据结构之循环双链表
感谢tu451953337的分享 原文链接地址:点击打开链接这个循环双链表写的相当不错,注释解析也很清晰。是个不错的博文!public class DbLinkedList { //定义内部类,用作链表的节点 private class Node { Node pre; //指向前一个节点转载 2016-05-31 21:44:43 · 1994 阅读 · 0 评论 -
java数据结构之循环单链表
下面直接上代码举例说明:public class CircularLinkedList { //java中循环单链表 private class Node {//创建一个内部节点类 private Node next = null; private Object value = null; public Node() { } public Node(Object原创 2016-05-31 20:38:34 · 3071 阅读 · 0 评论 -
java数据结构之单链表
在单链表中对表头进行插入或者删除时,时间复杂度为O(1)。单链表查询指定节点时因为要进行循环查找平均需要查找N/2次,所以时间复杂度为O(N)。存储密度=数据占用的存储量/整个结点占用的存储量。根据这个公式可以得出单链表的存储密度为大于1,在空间利用率上面比顺序表要差;所以可以得出以下结论:单链表一般作为插入或者删除频繁,查询比较少的场景下使用。空间使用率上面是比较顺序表要低。原创 2016-05-29 22:51:05 · 765 阅读 · 0 评论 -
经典数据结构 [ B树,B+树 ]+B树的应用
关于B树的原理和实现方法,我也是研究了好久才看明白的,没明白之前感觉一脸懵逼,看懂后才发现原来也很简单。所以同学们要是发现很难看懂的情况下,不要烦躁着急,可以先冷静冷静的思考一下,然后多看几篇文章,我也是看了好几篇的文章才看懂的,要是大家看完之后还是不大懂的话,可以再文章最后联系我,加油!B 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平...转载 2018-05-06 11:33:49 · 2299 阅读 · 0 评论