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数据结构
快速排序
思想快速排序的核心操作是划分,通过某个数据将原来排序表分成两部分,前面部分比该数小,后面数据比该数据大或相等,该位置就为某数据排序后的位置,即该数据完成排序。如果定义一个排序表的划分方法为:intpartition(int[]R,intlow,inthigh);其中,low,high表示将数据R的第low个数据到high个数据进行划分,返回到整数为划分后到支点存储的位置;快速排序在查找分支点位置的
LongBiu
·
2020-07-08 20:57
数据结构(java)
Java数据结构
和算法——冒泡排序及优化
一.冒泡排序的思想把相邻的元素两两比较,当左边的元素大于右边的相邻元素时,交换它们的位置(大的元素向上冒泡)。小于或等于时位置不变。时间复杂度:n个元素,最多走n-1趟。1+2+3+…+(n-1)=n*(n-1)/2所以是O(n^2)二.算法图解这是一次冒泡排序的过程。每次找到最大的元素,向上冒泡。三.第一版代码packagedata.structure;importjava.util.Array
灵洛的人间乐园
·
2020-07-08 18:48
Java数据结构与算法
Java数据结构
与算法(韩顺平老师)自学笔记
Java数据结构
与算法数据类型1数据类型介绍2数据类型之——稀疏数组2.1引入实例2.2稀疏数组的基本介绍2.3应用实例2.4思路分析3单向队列3.1队列介绍3.2数组模拟队列3.3思路分析3.4代码实现
三驴蛋蛋
·
2020-07-08 18:42
Java 数据结构与算法系列之冒泡排序
带着这个好奇心,我去查了下资料,国内基本找不到使用Java写的数据结构与算法书籍,有一本书叫《
Java数据结构
与算法》,这本书的代码是使用Java实现的,不过这本书是国内的学者翻译国外的书籍写出来的,个人感觉这
weixin_34409741
·
2020-07-08 18:07
高并发下的
Java数据结构
(List、Set、Map、Queue)
由于并行程序与串行程序的不同特点,适用于串行程序的一些数据结构可能无法直接在并发环境下正常工作,这是因为这些数据结构不是线程安全的。本节将着重介绍一些可以用于多线程环境的数据结构,如并发List、并发Set、并发Map等。1.并发ListVector或者CopyOnWriteArrayList是两个线程安全的List实现,ArrayList不是线程安全的。因此,应该尽量避免在多线程环境中使用Arr
weixin_34355881
·
2020-07-08 18:06
Java集合(七)--基于jdk1.8的HashMap源码
特别是删除方面太复杂,面试也不会问到,知道红黑树基本实现原理就可以了源码基于jdk1.8,我们都知道1.8版本的HashMap有很大改变,通过数组+链表+红黑树实现图例:关于链表和红黑树相关内容,可以参考:
Java
weixin_30326515
·
2020-07-08 13:24
Java数据结构
与算法(一、初识数据结构与算法)
1.经典的算法面试题介绍经典的面试题解决的算法字符串匹配(KMP算法)汉罗塔游戏(分治算法)八皇后问题(回溯算法)马踏棋盘(图的深度优化+贪心算法)其他常见问题:1.五子棋存档问题 => 稀疏数组【数据结构】2.约瑟夫问题 => 单向环形链表【数据结构】3.修路问题 => 最小生成树(加权值)【数据结构】+普利姆算法4.最短路径问题 => 图【数据结构】+费罗伊德算法5.汉罗塔
Sichon
·
2020-07-08 03:15
Java数据结构
——栈和队列
文章目录一、概念二、实现(一)栈的模拟(二)队列的模拟(1)用数组模拟队列(2)用链表模拟队列三、实际应用场景四、参考一、概念栈和队列是经过限制(或者说特殊的)的线性结构,我们经常将两个放在一起来比较学习。两者分别有以下特点:栈:先进后出队列:先进先出栈就好比你从一摞书的下面找一本书,先得把上面得取下来;队列像排队,前面得人先得到服务。二、实现(一)栈的模拟栈是一种后进先出的数据结构,对于Stac
凌晨4点钟
·
2020-07-08 03:12
Java数据结构
Java数据结构
:单链表
//单链表:学生信息管理publicclassDome_3{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubStudents1=newStudent(1,"男","小明");Students2=newStudent(2,"女","小红");Students3=newStudent(3,"男","小刚");Studen
@大愚@
·
2020-07-08 03:52
java数据结构
JAVA数据结构
和算法系列视频教程 20课
课程介绍:基于JAVA语言的数据结构算法视频教程,非常经典的
java数据结构
基础理论课程,是学习java的必备技能。
qq_42798014
·
2020-07-08 02:49
Java数据结构
:多项式的乘法和除法
1,多项式的乘法:A(x)*B(x)思路:用A多项式的每一项乘以B多项式的每一项,相加publicclass一维多项式乘积{publicstaticvoidmain(String[]args){inta[]={-4,5,2,-1,3,2};intb[]={-3,-2,1,3};intR[]=newint[9];//9为多项式乘后的项数,利用公式//a.length+b.length-1=项数,用于
燕双嘤
·
2020-07-08 02:49
数据结构/算法
Java学习——数据结构——冒泡排序及其优化
学习尚硅谷韩顺平老师的
Java数据结构
笔记,详情请移步网站基本介绍冒泡排序(BubbleSorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换
qq_41853002
·
2020-07-08 01:04
Java
Java 数据结构与算法 (尚硅谷
Java数据结构
与算法)笔记目录
红色的表示重要,绿色的表示暂时还不懂而且很重要线性结构和非线性结构队列顺序队列循环队列链表链表(LinkedList)介绍链表是有序的列表,但是它在内存中是存储如下小结:1)链表是以节点的方式来存储,是链式存储2)每个节点包含data域,next域:指向下一个节点.3)如图:发现链表的各个节点不一定是连续存储.4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单向链表双向链表Jose
小白鼠丶
·
2020-07-07 21:01
数据结构与算法
Java数据结构
-BitSet(位集合)
BitSet定义了两个构造方法。第一个构造方法创建一个默认的对象:BitSet()第二个方法允许用户指定初始大小。所有位初始化为0。BitSet(intsize)参考菜鸟教程////位集合////BitSetbit1=newBitSet(16);////BitSetbit2=newBitSet(16);////for(inti=0;i<16;i++){////if((i%2)==0){////bi
随缘的人_
·
2020-07-07 20:01
Java
Java数据结构
:链表
单链表(LinkedList)链表是有序的列表,但是它在内存中的存储方式如下image1)链表是以节点的方式来存储,是链式存储2)每个节点包含data域:存放数据,next域:指向下一个节点的地址.3)如图:发现链表的各个节点不一定是连续存储.4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定;头节点不存放具体的数据,只用来表示单链表表头next域;下面是单链表的逻辑结构:双向链表单
Patarw
·
2020-07-07 17:52
Java数据结构
与算法 day02 链表
文章目录第三章链表单链表介绍和内存布局单链表创建和遍历的分析实现添加(创建)过程遍历过程代码实现单链表按顺序插入节点单链表节点的修改单链表节点的删除和小结单链表面试题新浪面试题腾讯面试题百度面试题课后练习双向链表增删改查分析图解及实现环形链表介绍和约瑟夫问题约瑟夫问题分析图解和实现本章导图总结第三章链表本章源码:https://github.com/name365/Java-Data-struct
subeiLY
·
2020-07-07 16:33
数据结构与算法(Java版)
java数据结构
之快速排序
原理:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。图示:代码实现:publicclassQuickSort{publicstaticvoidmain(String[]args){int[]arr={5,3,7,8,2,9,4,6};sort(a
PP_Boy
·
2020-07-07 16:12
java
java数据结构
简介and数组
数据结构优点缺点数组插入块(知道下标)查找慢,删除慢,大小固定有序数组比无须的数组查找块删除和插入慢,大小固定栈提供后进先出的存取方式存取其他项很慢队列提供先进先出的存取方式存取其他项很慢链表插入删除快查找慢二叉树查找插入删除都快删除的算法比较复杂(树平衡的情况下)红黑树插入查找删除都快算法复杂(平衡树)2-3-4树同上(平衡树)哈希表插入快,通过关键字存取快删除慢堆插入删除快,对最大数据项对其他
gg大宇
·
2020-07-07 15:31
Java数据结构
——哈夫曼编码(数据压缩)
数据压缩的操作步骤:1、首先将原数据转为字节型数据;2、将字节型数据转化为哈夫曼编码。使用Map方法将每一个字符按照的方式存储起来,其中String就代表该字节的哈夫曼编码;3、再将哈夫曼编码进行数据压缩,按照8位压缩为数字。importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Stringstr="Thisist
jwz934738949
·
2020-07-07 12:09
Java数据结构
Java数据结构
——冒泡排序
importjava.util.Arrays;importjava.util.Date;/*冒泡排序指的是对一组无序的序列进行排序,每相邻两个数据进行比较,进行排序,使整个序列有序化。每次排序都会找到最大的数字放置到最后一位,之后再对无序的序列,前(n-1)个数字进行排序。*/publicclassMain{publicstaticvoidmain(String[]args){int[]arr=n
jwz934738949
·
2020-07-07 12:09
Java数据结构
Java数据结构
与算法_冒泡排序
Java数据结构
与算法_冒泡排序一、冒泡排序介绍冒泡排序也称起泡排序,它是通过元素两两比较,如果前者比后者大,则交换位置,这样一趟排序下来,最大的元素就排到队尾了;反复此操作,直至数列有序完成排序操作。
shuPush
·
2020-07-07 08:03
数据结构与算法
Java数据结构
与算法——冒泡排序 (数据测试 验证算法时间)
冒泡排序基本介绍:冒泡排序(BubbleSorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置个标志flag判断元素是否进行过交换。从而减少不必要的比较。原
为月提笔_
·
2020-07-06 23:12
Java Hashtable 类
[JavaHashtable类
Java数据结构
Hashtable是原始的java.util的一部分,是一个Dictionary具体的实现。
MrAit
·
2020-07-06 21:00
java数据结构
——冒泡排序
2019独角兽企业重金招聘Python工程师标准>>>数组:intscore=[1,8,3,7,6,9,2,10,5,4]过程:1.比较相邻两个数的大小2.若左边的数字大于右边的数字,则交换两个数字的位置(最大的值会被换到最右边)3.否则,向右移动一个位置,继续比较4.1~3为一趟排序,共需要n-1趟排序第一趟结果:13768295410第二趟结果:13672854910第三趟结果:1362754
weixin_34197488
·
2020-07-06 19:17
数据结构与算法(Java笔记15天)
文章目录
Java数据结构
与算法前言我常用的OJ网站我常看的算法书目录结束
Java数据结构
与算法前言源码:https://github.com/name365/Java-Data-structure如果是
subeiLY
·
2020-07-06 17:01
数据结构与算法(Java版)
Java数据结构
与算法 day13 程序员十大常用算法
文章目录第十三章十大常用算法二分查找算法(非递归)分治算法动态规划算法KMP算法贪心算法普利姆算法克鲁斯卡尔算法克鲁斯卡尔算法介绍克鲁斯卡尔算法图解说明克鲁斯卡尔算法分析如何判断是否构成回路-举例说明?鲁斯卡尔算法的代码说明迪杰斯特拉算法(这个没怎么懂!!!)弗洛伊德算法回溯算法全劇終!!!第十三章十大常用算法本章源码:https://github.com/name365/Java-Data-st
subeiLY
·
2020-07-06 15:25
数据结构与算法(Java版)
算法
数据结构
java
《
Java数据结构
和算法》第二版 Robert lafore 编程作业 第七章
《
Java数据结构
和算法》第二版Robertlafore编程作业第七章/*7.1修改partition.java程序(清单7.2),使partitionIt()方法总是用具有最大的下标值的数组(最右)数据项作为枢纽
zhch152
·
2020-07-06 12:58
Java数据结构
----堆的概念及结构
二叉树有两种实现结构,一种是链式结构(详解在上一篇),一种就是顺序结构,普通二叉树其实是不适合用数组来存储数据,因为会造成大量空间的浪费,但完全二叉树似乎更合适于顺序结构存储,我们通常把堆(完全二叉树)使用顺序数组来存储1.什么是堆?堆就是将一个集合的数据按照完全二叉树的顺序结构存储在一个一维数组中,堆在逻辑上是一棵完全二叉树,在物理结构上是一个一维数组.按照根结点的大小分为大堆(根结点的值最大)
#define微光
·
2020-07-06 04:54
数据结构
简单排序算法(java实现)
简单排序算法(java实现)开始进行
java数据结构
与算法方面的学习,将所学过程记录下来以方便自己以后再次翻看,也希望能和同在学习的朋友们一起交流学习心得。
小明同学@zx
·
2020-07-06 04:03
Java数据结构
和算法——手写链表
关于链表的结构可以参考一下:https://www.cnblogs.com/ysocean/p/7928988.html完整代码packagedata.structure;/***链表的查找、添加与删除**/publicclassMlnkSingleLinkList{privateNodehead;//头节点指针privateNodelast;//尾节点指针privateintsize;//链表长
灵洛的人间乐园
·
2020-07-06 02:23
Java数据结构与算法
Java数据结构
(一):线性表之开篇
1、线性表线性结构的特点是除第一个和最后一个数据元素外的每个数据元素只有一个前驱数据元素和一个后继数据元素。线性表是一个最简单的线性结构。线性表的操作特点主要是可以在任意位置插入和删除一个数据元素。线性表可以用顺序存储结构和链式存储结构存储。用顺序存储结构实现的线性表称作顺序表,用链式存储结构实现的线性表称作链表。链表主要有单链表,循环单链表和双向循环链表三种。顺序表和单链表各有优缺点,并且优缺点
locoder
·
2020-07-06 01:59
java数据结构
---数组,手写数组,算法复杂度分析
1.首先用Java手写一个动态扩容的数组。packagecom.struct.array;publicclassArray{/***存放数据的数组*/privateE[]data;/***数组中现有数据量*/privateintsize;publicArray(intcapacity){data=(E[])newObject[capacity];size=0;}/***默认数组长度10*/publ
镜水灵动
·
2020-07-05 18:50
java
数据结构
Java数据结构
与算法解析(六)——AVL树
之前我们说过普通二叉查找树的删除算法会使得左子树比右子树深,因为我们总是用右子树的一个来代替删除的节点。会造成二叉查找树,严重的不平衡。AVL树简介而AVL树就是解决普通二叉查找树弊端的方法,他是带有平衡条件的二叉查找树,这个平衡条件必须容易保持,而且它保证树的深度必须是O(logN).AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。上面的两张图片,左边的
伯努力不努力
·
2020-07-05 16:45
数据结构与算法
Java数据结构
之 字符串的模式匹配
一.BF算法BF算法又称暴力匹配算法,比较方法:BF算法的思想就是将主串S的第一个字符与子串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。接下来是代码实现publicstaticintBF(Stringstr,Stringsub,intpos){if(posstr.length()||
小呀小呀小函数
·
2020-07-05 12:13
java数据结构
与算法之手写队列的实现
packageArrayQueueDemo;importjava.util.Scanner;publicclassArrayQueueDemo{publicstaticvoidmain(String[]args){//测试一把//创建一个队列ArrayQueuequeue=newArrayQueue(30);charkey='';//接受用户的输入Scannerscanner=newScanner
Coder_Player
·
2020-07-05 09:24
数据结构与算法
手写
java数据结构
之栈、队列和二叉树的前序中序后序遍历
栈publicclassMyStack{privatelongarr[];privateinttop;publiclongarrQueue[];publicMyStack(){arr=newlong[10];arrQueue=newlong[10];top=-1;}publicMyStack(intmaxsize){arr=newlong[maxsize];arrQueue=newlong[max
stephenJS
·
2020-07-05 09:24
数据结婚
图解
Java数据结构
之单链表
本篇文章介绍数据结构中的单链表。链表(LinkedList)介绍链表可分为三类:单链表双向链表循环列表下面具体分析三个链表的应用。单链表链表是有序的列表,它在内存中存储方式如下:虽然链表是有序列表,但是其元素并不是连续存储的。我们从图中可以看出,a1的next域为110,而地址为110的元素为a2;a2的next域为180,而地址为180的元素为a3,以此类推。综上所述:链表是以节点的方式来存储的
~wangweijun
·
2020-07-05 09:07
图解Java数据结构
Java学习——数据结构——Huffman编码以及文件解压缩
学习尚硅谷韩顺平老师的
Java数据结构
笔记,详情请移步网站1、基本介绍(1)赫夫曼编码也翻译为哈夫曼编码(HuffmanCoding),又称霍夫曼编码,是一种编码方式,属于一种程序算法(2)赫夫曼编码是赫哈夫曼树在电讯通信中的经典的应用之一
qq_41853002
·
2020-07-05 08:23
Java
Java数据结构
与算法之稀疏数组
1、稀疏数组定义稀疏数组(sparsearray)是一种只为数组中的非零元素分配内存的特殊类型数组,内存中存储了数组中非零元素的下标和值。2、稀疏数组与二维数组普通二维数组二维数组转稀疏数组后稀疏数组图解将二维数组转称稀疏数组之后,在稀疏数组中存储的是二维数组中所有非0(不一定是非0,在实际应用中,可能是数组中大量存在的并且分布没有规律的元素)元素的下标和值。稀疏数组的列数是固定的,只有3列:第一
Code Lee
·
2020-07-05 08:52
数据结构与算法-Java
BitSet学习
1:Bitset介绍#BitSet是用于存储二进制位和对二进制进行操作的自动去重
Java数据结构
,此类实现了一个按需增长的位向量。位set的每个组件都有一个boolean值。
z海清
·
2020-07-05 08:26
java数据结构
(6)--字符串模式匹配算法(KMP算法)
一、KMP算法KMP算法可以在O(n+m)的时间数量级上完成串的模式匹配操作,其基本思想是:每当匹配过程中出现字符串比较不等时,不需回溯指针,而是利用已经得到的“部分匹配”结果将模式向右“滑动”尽可能远的一段距离,继续进行比较。显然我们首先需要获取一个“部分匹配”的结果,该结果怎么计算呢?二、算法分析在上一篇中讲到了BF算法,当目标字符串与源字符串进行比较时,会逐个字符进行比较一旦发现不匹配就会重
蜘蛛侠不会飞
·
2020-07-05 07:23
数据结构
JAVA数据结构
和算法笔记
一.树关于dfs和bfsdfs常用voiddfs(TreeNoderoot){if(root==null){return;}dfs(root.left);dfs(root.right);}bfs:层序遍历、最短路径问题(也可使用Dijkstra算法)102、1062voidbfs(TreeNoderoot){Queuequeue=newArrayDeque<>();queue.add(root);
小鱼说乌龟快跑
·
2020-07-05 04:13
java
跟小刀学习 java 数据结构 单向链表
这次我写
java数据结构
的单向链表,转载:请注明出处什么是单向链表呢?
北京de小刀
·
2020-07-05 04:21
java
Java数据结构
与算法-稀疏数组
publicclasssparseArray{publicstaticvoidmain(Stringargs[]){/*原始矩阵6*6000000020030000001000010000000000000*//*稀疏矩阵664(第一列记录原始二维数组的行列数和数组中的有效数据个数)112(有效数据所在的行、列和数值)143251341*/intarray[][]=newint[6][6];arr
Pipe Piper
·
2020-07-04 23:48
数据结构与算法
Java数据结构
与算法之杨辉三角
杨辉三角规则:杨辉三角规则:1.每一行的第一例为12.每一行的最后一列为13.当前数=上一个数+上一个数的前一个数packagecom.java.array;/***杨辉三角规则:*1.每一行的第一例为1*2.每一行的最后一列为1*3.当前数=上一个数+上一个数的前一个数*/publicclassYanghuiShanjiao{publicstaticvoidmain(String[]args){
魔舞清华
·
2020-07-04 16:45
数据结构与算法
java数据结构
——队列、循环队列(Queue)
1、队列1/**2*人无完人,如有bug,还请斧正3*继续学习
Java数据结构
————队列(列队)4*队列和栈一样,都是使用数组,但是队列多了一个队头,队头访问数据,队尾插入数据5*队列的重要数据特性—
azepkkl2876
·
2020-07-04 11:09
Java数据结构
与算法:堆
1.堆的定义设有n个数据元素的关键字为(k0、k1、…、kn-1),如果它们满足以下的关系:ki=k2i+1且ki>=k2i+2)(i=0、1、…、(n-2)/2)则称之为堆(Heap)。如果将此数据元素序列用一维数组存储,并将此数组对应一棵完全二叉树,则堆的含义可以理解为:在完全二叉树中任何非终端结点的关键字均不大于(或不小于)其左、右孩子结点的关键字。下图(b)、(c)分别给出了最小堆和最大堆
Jack-Chan
·
2020-07-04 11:04
数据结构与算法
Java数据结构
与算法基础(一)概述与线性结构
Java数据结构
与算法基础(二)递归算法
Java数据结构
与算法基础(一)概述与线性结构学习目的:为了能更顺畅的读很多底层API代码和拓宽解决问题的思路一、数据结构概述1.数据结构是什么?
小土狗一只
·
2020-07-04 06:54
Java数据结构与算法基础
java数据结构
(单链表)
今天主题是单链表前文已经介绍了关于线性结构的顺序存储结构实现,本文主要是关于线性结构的链式存储结构实现。链式存储结构是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的。相比顺序结构,链式存储结构更依赖于数据元素之间的关系。你可以在任意位置放置你的数据元素,但是你要保证正常指向它的下一个元素1.链表的结点一个链表需要有结点,包括元素,以及下一个结点的信息注意:链表的起点并不是第一个结点,而
浩然正气Y
·
2020-07-04 05:17
java数据结构
Java数据结构
与算法解析(十四)——二叉堆
二叉堆概述二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。二叉堆一般都通过”数组”来实现,下面是数组实现的最大堆和最小堆的示意图:二叉堆的实现本实现以”最大堆”为例子来进行介绍。1.添加假设在最大堆[90,80,70,60,40,30,20,10,
伯努力不努力
·
2020-07-04 02:18
数据结构与算法
上一页
29
30
31
32
33
34
35
36
下一页
按字母分类:
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
其他