E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
java数据结构
java数据结构
与算法:算法分析—时间复杂度分析法则及3个经典算法案例分析
系列文章目录(一)引论——为后续章节搭建一个学习平台(二)算法分析——时间复杂度的分析法则及3个经典算法案例分析(三)链表——ArrayList与LinkedList源码解析和应用场景以及手写实现LRU缓存淘汰算法(四)队列——线程池中有限资源请求队列排队功能的实现原理及队列的手写实现(五)栈——用户界面的前进跳转及回退机制如何实现及栈的手写实现(六)Hash表——HashMap的实现原理精讲及H
JAVA6b
·
2020-09-03 23:42
#
数据结构与算法
算法
数据结构
java
面试
Java数据结构
与算法——单调栈算法笔记
文章目录一、单调栈的定义及特点二、案例案例一:柱状图中最大的矩形案例二:每日温度案例三:下一个更大元素I一、单调栈的定义及特点所谓单调栈就是在栈先进后出的特性之外再添加一个特性:从栈顶到栈底的元素严格递增(or递减)。栈内元素保持单调,有单调递增栈和单调递减栈。注意:这里的单调递增或递减指的是从栈顶到栈底单调递增或递减。每个元素都要入栈,且仅入栈一次,出栈后不再入栈。注意:栈内可以直接存储元素,也
TheManba
·
2020-08-26 15:42
Java数据结构与算法
java
栈
java数据结构
:二叉树
树树的定义:树是n(n>0)个结点的有穷集合。(1)有且仅有一个称为根的结点;(2)其余结点分为m(m>=0)个互不相交的非空集合T1,T2…Tm,这些集合中的每一个都是一棵树,称为根的子树。在树上,根结点没有直接前趋。树形结构的术语及其含义:(1)度:树上任一结点所拥有的子树的数目称为该结点的度。(2)叶子或终端结点:度为0的结点。(3)非终端结点或分支点:度大于0的结点。(4)树的度:一棵树中
wahaajava
·
2020-08-26 14:36
Java数据结构
1数组2链表3栈和队列4二叉树5堆和堆栈6散列表7红黑树1.数组数组是一种连续存储线性结构,元素类型相同,大小相等,数组是多维的,通过使用整型索引值来访问他们的元素,数组尺寸不能改变。数组的优点:存取速度快数组的缺点:事先必须知道数组的长度插入删除元素很慢空间通常是有限制的需要大块连续的内存块插入删除元素的效率很低2.链表n个节点离散分配,彼此通过指针相连,每个节点只有一个前驱节点,每个节点只有一
孜梓不倦
·
2020-08-26 13:48
安心技术
HashMap原理分析及使用场景介绍
hashmap是
java数据结构
中的一个,也是我们经常使用的一个对象,我们先来看下它在
java数据结构
这个大家庭的位置吧,图1所示:通过上图可以看出来,HashMap的继承关系。它的特点是什么呢?
IT-JAVA小刘
·
2020-08-25 16:24
java
Java数据结构
与算法初级篇之数组、集合和散列表
Java数据结构
与算法初级篇之数组、集合和散列表>数据是基础,算法是灵魂本文出自门心叼龙的博客,属于原创类容,转载请注明出处。
门心叼龙
·
2020-08-24 20:45
Java数据结构
--图
如上所示,是一个图结构。图结构主要包含两个部分,点和线。其中线可以根据是否有方向分为两种,图中的线如果有方向可以成为有向图,如果没有可以看成无向图,无向图可以看成特殊的双向有向图。线还有可能包含权重(或者称为距离)这个属性。如何用代码的方式表达图呢,万事万物皆对象,如下所示://表示边publicclassEdge{publicintweight;//权重或者距离publicNodefrom;//
果子狸的大果果
·
2020-08-24 19:21
Java数据结构
的知识体系
Java数据结构
的知识体系主要包括线性表,树,图,数组,集合,矩阵,排序,查询,哈希表,并将java的设计思想,方法及一些常用的算法,设计模式贯穿其中。
番薯(Koali)
·
2020-08-24 18:23
算法
尚硅谷
Java数据结构
学习记录37-迪杰斯特拉算法
!!!!又称银行家算法,超经典超难的!!!!迪杰斯特拉是找一个结点到其它所有结点的最短路径用文字描述有点难一开始目标结点只能到达临近的点此时选择路径最小的点更新目标点到其它点的距离(因为可以经过最小的点到达其它点)在新的距离中继续找最小点packageAlgorithm;importjava.util.Arrays;publicclassDijkstra{publicstaticvoidmain(
哈特谢普苏特
·
2020-08-24 15:07
数据结构JAVA
【Java 数据结构与算法 04】递归
本文为学习
Java数据结构
与算法所记录,主要内容为递归的原理和应用,以及通过递归解决迷宫问题、八皇后问题(回溯算法)Github仓库:DataStructures-and-Algorithms个人网站:
源志bx
·
2020-08-24 15:14
Java
数据结构与算法
数据结构
算法
递归法
(
Java数据结构
和算法)最短路径---Dijkstra+Floyd
参考博文Floyd算法和Dijkstra算法都不能针对带有负权边的图,否则一直走负权边,没有最小,只有更小!!Floyd算法importjava.util.Scanner;//Floyd算法classGraph{publicint[][]adjacencyMatrix;publicintvertexNumber;publicintarcNumber;publicstaticfinalintINF=
ccnuacmhdu
·
2020-08-24 13:15
Java版数据结构
Java数据结构
:链表
1.概述链表是一种数据结构,在内存中通过节点记录内存地址而相互链接形成一条链的储存方式。链表的插入和删除都比较快,缺点是查找比较慢。除非需要频繁的通过下标来随机访问数据,否则在很多使用数组的地方都可以用链表代替。相比数组而言,链表在内存中不需要连续的区域,只需要每一个节点都能够记录下一个节点的内存地址,通过引用进行查找,因此链表增删操作时间消耗很小,而查找遍历时间消耗很大。2.链表的分类链表常用的
鹭岛猥琐男
·
2020-08-24 12:50
Java数据结构与算法
Java数据结构
和算法(七)——链表
前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造成内存的浪费,过小又不能满足数据量的存储。本篇博客我们将讲解一种新型的数据结构——链表。我们知道数组是一种通用的数据结构,能用来实现栈、队列等很多数据结构。而链表也是一种使用广泛的通用数据结构,它也可
IT可乐
·
2020-08-24 11:11
Java数据结构
——04 双向链表的增删改
双向链表的增删改双链表同单链表相比多了前驱节点,相比单链表插入删除更容易,可以随时调用当前节点的前节点,但同时增加了前驱节点,增删两项与单链表有点区别,修改遍历原来的单链表方法一样适用。增加方法过程如下:删除方法:实现如下:classDoubleNode{//id和name是data域privateintid;privateStringname;publicDoubleNode(intid,Str
GM.
·
2020-08-24 11:08
数据结构
java数据结构
之单链表类的设计与顺序插入和就地排序算法
首先创建节点类Node.单链表是由节点构成,节点类包含两个成员属性,一个是数据元素,一个是下一个节点的对象引用。classNode{privateObjectelement;//数据元素privateNodenext;//下一个节点的对象引用Node(Nodenext)//头节点构造函数{this.element=null;this.next=next;}Node(Objectelement,No
夜舞虫鸣
·
2020-08-24 09:25
数据结构
Java数据结构
-- 顺序表和链表的简单总结
1.顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储.在数组上完成数据的增删查改.顺序表可分为:静态顺序表:使用定长数组存储动态顺序表:使用动态开辟的数组存储2.链表链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的3.顺序表和链表的区别顺序表优点:空间连续,支持随机访问缺点:1.中间或前面插入删除的时间复杂度是O
小朋友/?
·
2020-08-24 07:50
Java数据结构
--
链表
ArrayList源码浅析
文章目录前言一.ArrayList介绍二.ArrayList的部分源码学习1.初始化2.add方法(1).add(Ee)(2).Arrays.copyOf前言ArrayList是我们常用到的一个重要的
java
rockyou666
·
2020-08-24 07:06
Java学习
ArrayList
Java源码学习
java数据结构
及框架
慕课视频(java入门资料):https://www.imooc.com/learn/110、菜鸟教程一.
java数据结构
:枚举(Enumeration)、位集合(BitSet)、向量(Vector)、
亮涛
·
2020-08-24 06:33
【
Java数据结构
】Hashmap与Hashtable源码阅读笔记
引言:这几天在捣鼓Hashmap跟Hashtable的区别,其中关注的b比较多的就是Hashmap和Hashtable计算在Entry[]数组中index的方法到底有什么区别。Hashmap跟Hashtable的实现原理比较类似,借用一张其他地方偷来的图。外拉链式的Hash表可以看到,都是采用外拉链的方式来实现元素存储,底层是数组+链表实现,原理都不说了,学过数据结构中hash冲突解决的同学应该都
莫绪旻_向屿
·
2020-08-24 05:44
java数据结构
:线性表之数组实现
导语数据结构中最简单的结构就是线性结构。线性结构又分为多种类型:顺序线性表、链式线性表、栈、队列、堆等等今天我们来复习一下如何使用数组来实现线性表设计抽象数据类型ADT数据结构实际上就是针对一系列数据,设计一系列针对这些数据的操作方法,由于这些数据和操作方法一般来说是共性的特征,所以我们可以使用接口来进行抽象。接口代码如下所示:packagecom.zhanwj.datastructure;pub
wenger
·
2020-08-23 21:28
java数据结构
[
Java数据结构
]线性表之栈Stack
》》先进后出》》代码package栈和队列;classstackArr{privateintmaxSize;privatelong[]stackArr;privateinttop;publicstackArr(ints){maxSize=s;stackArr=newlong[maxSize];top=-1;}publicvoidpush(longj){//压栈stackArr[++top]//先t
帕尼尼270
·
2020-08-23 18:22
数据结构
java数据结构
和算法——双向链表(Double Linked List)的修改、删除、查询及按编号顺序添加节点到双向链表的应用示例
一、双向链表(DoubleLinkedList)的修改、删除、查询及按编号顺序添加节点到双向链表的代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点packagecom.rf.springboot01.dataStructure.doubleLinkedList2;/***@description:定义一个人员节点类,每一个PersonNode对象就是一个节点*@autho
小志的博客
·
2020-08-23 10:48
java数据结构和算法
最大公约数和最小公倍数 in Java
最近在学校当助教,课程是
Java数据结构
,因此重温一下算法和数据结构,也因此把算法和一些Java的特性学习的更深刻,也希望用写博客来监督自己的持续学习。
hc_xyz
·
2020-08-23 01:52
数据结构
分布式架构下基于Redisson实现Redis分布式锁
Redisson:实现了分布式和可扩展的
Java数据结构
。Lettuce:高级Redis客户端,用于线程安
riemann_
·
2020-08-22 18:38
Java架构设计与分布式
Redis
Java数据结构
与算法 深搜(DFS)的简单使用(一)之排列组合
今天,我们来简单介绍一下深度优先搜索(DFS)的概念和使用。在百度词条中,对深搜的解释是这样的。百度词条中的解释由此,我们可知,深搜是广泛运用到图中的搜索方法之一。用深度优先搜索遍历图的基本思路是:(1)访问顶点v;(2)依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问;(3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直
薛定谔的猫狗
·
2020-08-22 15:40
阿里数据结构与算法技术文档,解析经典问题
整理了一份
Java数据结构
与算法经典问题解析核心知识点。
Java浮世绘
·
2020-08-22 15:45
Java
从0开始学习数据结构与算法(Java版)
从0开始学习数据结构与算法Java版GitHub地址DataStructure_
Java数据结构
稀疏数组GitHub地址DataStructure_JavaJava版的数据结构使用Java语言实现常用的数据结构
苏朗轩
·
2020-08-22 13:25
数据结构与算法
算法
数据结构与算法!
Java数据结构
与算法——链表
前言:
Java数据结构
与算法专题会不定时更新,欢迎各位读者监督。本文介绍另一种数据结构——链表,包括链表的特点特点、链表的创建、删除、插入和输出,文末给出java代码和一道常见的关于链表的面试题。
好记性不如烂本子
·
2020-08-22 10:03
面试
链表删除结点
链表
数据结构与算法
java
Java数据结构
与算法——桶排序
前言:
Java数据结构
与算法专题会不定时更新,欢迎各位读者监督。本文从最简单的一个排序算法——桶排序开始,分析桶排序的实现思路,代码实现,性能特点以及适用场景。
好记性不如烂本子
·
2020-08-22 10:55
java
排序
桶排序
leetcode刷题(64)——背包类动态规划问题
背包问题详细分析问题拆解:定义状态:推导状态转移方程:寻找边界条件:三、案例一:leetcode——416.分割等和子集题目描述:分析:四、案例二:leetcode——322.零钱兑换题目描述:分析:动态规划知识参考:
Java
TheManba
·
2020-08-22 04:21
leetcode刷题
Java将Vector对象序列化
Java将Vector对象序列化Vector对象是一个很灵活的
java数据结构
,在实际编程中,有时需要我们将一个Vector对象传递给另一个Java程序并保持Vector的数据结构状态,这时,我们可以将需要传递的对象实现
betheone
·
2020-08-22 01:49
java
读书笔记-算法与数据结构(第二版java)
进行了一次笔试,深切的感受到了自己在数据结构方面的知识的零散,因此专门找一本书来系统的整理学习一下,最后发现
Java数据结构
和算法这本书系统性比较强,而且内容浅显易懂,因此通过这本书作为载体来进行学习,
培鹏
·
2020-08-22 00:45
算法与数据结构
Java数据结构
与算法解析(八)——伸展树
伸展树简介伸展树(SplayTree)是特殊的二叉查找树。它的特殊是指,它除了本身是棵二叉查找树之外,它还具备一个特点:当某个节点被访问时,伸展树会通过旋转使该节点成为树根。这样做的好处是,下次要访问该节点时,能够迅速的访问到该节点。特性1.和普通的二叉查找树相比,具有任何情况下、任何操作的平摊O(log2n)的复杂度,时间性能上更好2.和一般的平衡二叉树比如红黑树、AVL树相比,维护更少的节点额
伯努力不努力
·
2020-08-21 21:11
数据结构与算法
JAVA数据结构
之实现简易ArrayList,LinkedList,HashTable
ArrayList,LinkedList,HashTable三者是JAVA中的三种常见的数据结构,当然它们的性能有不同的差异,比如数据查找速度,增加或删除数据的速度,内存空间占用等等,这将在下篇博客中体现,这篇博客只是大致应用数据结构知识来自己实现三种数据结构的基本功能,包含一些简单的增查改删功能。ArrayList:publicclassArrayList{privateintcounts;//
domphy
·
2020-08-21 19:23
JAVA
深入理解Stack 栈
Java集合深入理解(5):Stack栈标签:
java数据结构
集合框架数据结构中的栈数据结构中,栈是一种线性数据结构,遵从LIFO(后进先出)的操作顺序,所有操作都是在顶部进行有点像羽毛球筒:栈通常有三种操作
yesIcando-bupt
·
2020-08-21 15:32
java
Java实现--奇偶排序
《
Java数据结构
和算法》中写道:奇偶排序实际上在多处理器环境中很有用,处理器可以分别同时处理每一个奇数对,然后又同时处理偶数对。因为奇数对是彼此独立的,每一刻都可以用不同的处理器比较和交换。
CrAcKeR-1
·
2020-08-21 10:52
数据结构和算法
Java
java数据结构
----图的基本操作
java数据结构
----图的基本操作实验四、图的基本操作一、实验目的1、熟练掌握图的邻接矩阵和邻接表存储结构;2、掌握图的创建方法;3、掌握求顶点度的方法;4、掌握图的深度优先和广度优先遍历方法;二、实验内容
slicer
·
2020-08-20 23:59
语言/理论
数据结构
实验
Java数据结构
之哈夫曼树
背景由于目前常用的图像、音频等多媒体的信息量巨大,因此必须采用数据压缩技术来存储和传输。数据压缩技术通过对数据进行重新编码来压缩存储,以便减少数据占用的存储空间,在使用时再进行解压缩,恢复数据的原有特性。压缩方法主要由有损压缩和无损压缩。有损压缩是指压缩过程中可能会丢失数据信息;无损压缩是指压缩存储数据的全部信息,保证解压后的数据不丢失。哈夫曼编码是一种无损压缩技术。基本概念结点间路径:从一个结点
Monkey_Joker
·
2020-08-20 20:06
Java数据结构
JAVA数据结构
与算法实现-哈夫曼树
JAVA数据结构
与算法实现-哈夫曼树哈夫曼树,是一种特殊的二叉树,由一个叫做哈夫曼的人实现出来的,由于他的一致性所以数据统一。在这里我使用数组实现二叉树的原理。
烈火小绵阳
·
2020-08-20 19:42
Java数据结构
与算法之stack栈
目录:1.栈概述2.数组实现自定义栈3.链表实现自定义栈4.集合实现自定义栈1.栈概述栈和队列一样,也是线性表的一种,它唯一的特点是需要满足先进后出(FILO)的规则,也就是只能对栈的一头进行操作,添加数据称为压栈,移除数据称为弹栈。而在java中栈的实现可以通过数组,链表,集合(ArrayList/LinkedList)3种方式进行实现。2.数组实现自定义栈(1)自定义栈接口CustomStac
小巷下起了雨
·
2020-08-20 17:30
JAVA
Java数据结构
--图
0、图某班级的学生信息表如下图所示,每个学生都来自不同的城市,如果老师从重庆出差到南京,顺路要选择部分学生做一次家访,怎么样选择才最合理呢?下图是一个简单的模拟城市路线的地图,从重庆出差到南京,如何选择用时最短的路线出差,同时做家访呢?注:数字代表往返两城市间所需要的时间(单位:小时)。要解决该问题,最好的方法是使用数据结构中图的知识。一、图的概念及基本术语图:图G是由两个集合V和E所限定的一种数
书香水墨
·
2020-08-20 17:29
Java
Java数据结构
与算法
一、基本数据结构
Java数据结构
–顺序表
Java数据结构
–单链表
Java数据结构
–循环链表
Java数据结构
–双链表
Java数据结构
–顺序栈
Java数据结构
–链栈
Java数据结构
–递归
Java数据结构
–顺序队列
书香水墨
·
2020-08-20 17:29
Java
java数据结构
-利用Heap(堆)实现PriorityQueue(优先队列)
(一)、首先介绍下优先队列的性质(选自JDKAPI)优先队列是一个基于优先级堆的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的Comparator进行排序,具体取决于所使用的构造方法。优先级队列不允许使用null元素。依靠自然顺序的优先级队列还不允许插入不可比较的对象(这样做可能导致ClassCastException)。此队列的头是按指定排序方式确定的最小元素。
iteye_16768
·
2020-08-20 16:59
学习总结
java数据结构
之MaxHeap
MaxHeap:一个完全二叉树,父节点比子节点大,可用数组表示设父节点为i,则左子节点为2*i,右子节点为2*i+1publicinterfaceMyMaxHeapInterf>{publicvoidadd(TEntry);publicvoidclear();publicTremoveMax();publicTgetMax();publicbooleanisEmpty();publicintget
嵇康
·
2020-08-20 15:39
java
哈夫曼编码对字符串的压缩与解压缩(Java)
最近学习韩顺平老师主讲的“图解
java数据结构
与算法”的哈夫曼编码这一章节时,在编码实现上遇到了些许问题,本文主要记述一下问题及自己的解决方案,如有更优解还请指点。
Mzh1996
·
2020-08-20 15:47
数据结构与算法
java
Stack Queue Deque
Java数据结构
:各数据结构复杂度:StackFirstInLastOutFILO删除的复杂度为什么是O(1)而不是O(n)?,数据结构不是链表么?
阿杰、
·
2020-08-20 14:43
数据
Java数据结构
----图--最短路径解法Dijkstra算法和Floyd算法
最短路径—Dijkstra算法和Floyd算法1、Dijkstra算法1.1、定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。
liucw_cn
·
2020-08-20 12:10
Java数据结构
java数据结构
之串的定义
源码的github地址,可以下载到本地运行串的接口定义packageInterface;importimpl.ArrayString;/***串是由零个或者多个字符组成的有限序列*串中字符的数目n称为串的长度零个字符的串称为空串它的长度为零*串中任意个连续字符字符组成的子序列称为该串的子串包含子串的串相应的称为主串*通常称字符在序列中的序号为该字符在串中的位置子串的位置则是以该子串的第一个字符在主
程序员与王子喵
·
2020-08-20 11:03
数据结构与算法
常见数据结构的java实现
Java数据结构
-1 ArrayList顺序表实现
1.ArrayList子类 ArrayList是JavaCollection接口下List子接口的实现子类。它是一个长度可变的数组,底层是以数组为基础的顺序表实现的。所以说研究Java顺序表数据结构必须得了解一下ArrayList类。//ArrayList定义publicclassArrayListextendsAbstractListimplementsList,RandomAccess,Cl
Xucc_
·
2020-08-20 02:47
Java数据结构
Java数据结构
与算法之数组排序——奇偶排序
直接看代码/***排序数组,用于对数组中的元素进行排序*采用奇偶排序*//**思路:*它的思路是在数组中重复两趟扫描。*第一趟扫描选择所有的数据项对,a[j]和a[j+1],j是奇数(j=1,3,5,……)。*如果它们的关键字的值次序颠倒,就交换它们。*第二趟扫描对所有的偶数数据项进行同样的操作(j=2,4,6,……)。*重复进行这样两趟的排序直到数组全部有序**//*详解:*所谓奇偶排序,其核心
BatmanWayne
·
2020-08-19 23:26
上一页
19
20
21
22
23
24
25
26
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他