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数据结构
与算法[原创]——队列
前言:
Java数据结构
与算法专题会不定时更新,欢迎各位读者监督。本文介绍数据结构中的队列(queue)的概念、存储结构、队列的特点,文末给出java实现循环队列的代码实现供读者参考学习。
好记性不如烂本子
·
2018-03-23 00:00
java
数据结构与算法
队列
【
java数据结构
与算法学习】归并排序
今天我们来记录一下归并排序。归并排序的主要思想:将数组分成两半,将每一半排好序,然后分别在每一半数组的开头设置指针,进行比较,小的就放在辅助数组中,该指针往下移,直到其中一边的数组走到头,将剩余的元素拷贝到辅助数组中,返回数组就是有序数组。根据master公式O(T)=aO(T/b)+O(N^d)可知,a=2,b=2,d=1。a/b=d,所以归并排序的时间复杂度是O(N*logN)的。public
Zer01ne
·
2018-03-22 12:20
java
算法
Java数据结构
与算法[原创]——栈
前言:
Java数据结构
与算法专题会不定时更新,欢迎各位读者监督。本文介绍数据结构中的栈的概念、存储结构、栈的特点以及栈的适用场景,另外会穿插介绍面试中的一些经典问题供读者参考。
好记性不如烂本子
·
2018-03-22 00:00
java
数据结构
【
java数据结构
与算法学习】拉丁方阵问题
什么是拉丁方阵问题?如何打印一个拉丁方阵呢?思路:我们可以用循环链表来实现这个功能,通过变换开始打印的位置来改变顺序//拉丁方阵,有待改进publicclassLaDing{privatestaticclassNode{publicAnyTypedata;publicNodenext;publicNode(AnyTypedata,Nodenext){this.data=data;this.next
Zer01ne
·
2018-03-08 15:13
java
算法
【
java数据结构
与算法学习】BF算法
BF算法(Brute-Force),是一种最基本的模式匹配算法。BF算法的实现思想很简单:从目标串s的第一个字符起和模式串t的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从串s的第二个字符起再重新和串t进行比较。依此类推,直至串t中的每个字符依次和串s的一个连续的字符序列相等,则称模式匹配成功,此时串t的第一个字符在串s中的位置就是t在s中的位置,否则模式匹配不成功。该算法最坏情况下要
Zer01ne
·
2018-03-08 14:25
java
算法
【
java数据结构
与算法学习】汉诺塔
汉诺塔是递归分治思想不得不说的经典案例。汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。后来,这个传说就演变为汉诺塔游戏,玩法如下:1.有三根杆子A,B,C。A杆
Zer01ne
·
2018-03-06 20:42
java
算法
【
java数据结构
与算法学习】快慢指针---快速找到未知长度单链表的中间节点
如题:快速找到未知长度单链表的中间节点第一种方法是大多人都能想到的方法:先遍历整个链表得到链表的长度,然后遍历链表的一半,找到链表的中间节点。此操作的时间复杂度是O(n)+O(n/2)=O(3n/2),该方法就不再进行代码的展示了。第二种方法就比较巧妙了,是运用的快慢指针的原理。我们设置两个指针,其中一个指针移动的速度是另一个指针移动速度的两倍,这样当快的指针移动到链表结束位置的时候,慢的指针刚好
Zer01ne
·
2018-02-27 21:16
java
算法
Java实现的计算最大下标距离算法示例
[i]==false){i--;}while(j>i&&A[j]maxdis){maxdis=j-i;}i--;}returnmaxdis;}更多关于java算法相关内容感兴趣的读者可查看本站专题:《
Java
Yaphat
·
2018-02-11 11:39
java数据结构
实现机器人行走
某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字)。例如,我们可以对小车输入如下的指令:15L10R5LRR10R20则,小车先直行15厘米,左转,再走10厘米,再右转,...不难看出,对于此指令串,小车又回到了出发地。你的任务是:编写程序,由用户输入指令,程序输出每条指令执行后小车位置与指
dreamfly2014
·
2018-01-29 14:06
java数据结构
:双向链表结构与实现
本教程的内容基本来自于《
Java数据结构
与算法》单向链表的缺点在于每个节点只能知道自己与下一个节点,无法寻找到上一个节点。
陈华杰
·
2018-01-26 20:12
java
数据结构
Java数据结构
之稀疏矩阵定义与用法示例
本文实例讲述了
Java数据结构
之稀疏矩阵定义与用法。
雪夜&流星
·
2018-01-26 11:22
JAVA数据结构
-----顺序存储
线性表的顺序存储结构是指:用一组连续的存储单元依次存储线性表中的每个数据元素。即中间不允许有空,所以插入、删除时需要移动大量元素。在JAVA中实现顺序存储结构---顺序表首先,由于JAVA隶属于面向对象编程,所以这里大多数操作都是先定义(接口),然后实现相对于的接口也就实现了对“顺序表”的操作了。在这里,我们先定义一个myList/***CreatedbyTroshinon2018/1/13.*/
Troshin
·
2018-01-22 16:16
数据结构
JAVA面试技术栈
剑指offerjava基础知识:1.1常用api;1.2
java数据结构
:ArrayList扩容,HashMap结构,Hashset/Hashtable原理,Collection.sort用法,BlockingQueue
code_guo
·
2017-12-23 11:05
JAVA学习
Java数据结构
和算法(十)——二叉树
接下来我们将会介绍另外一种数据结构——树。二叉树是树这种数据结构的一员,后面我们还会介绍红黑树,2-3-4树等数据结构。那么为什么要使用树?它有什么优点?前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二分法查找,但是想要在有序数组中插入一个数据项,就必须先找到插入数据项的位置,然后将所有插入位置后面的数据项全部向后移动一位,来给新数据腾出空间,平均来讲要移动N/2次,这
YSOcean
·
2017-12-20 17:00
Java数据结构
和算法(十)——二叉树
接下来我们将会介绍另外一种数据结构——树。二叉树是树这种数据结构的一员,后面我们还会介绍红黑树,2-3-4树等数据结构。那么为什么要使用树?它有什么优点?前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二分法查找,但是想要在有序数组中插入一个数据项,就必须先找到插入数据项的位置,然后将所有插入位置后面的数据项全部向后移动一位,来给新数据腾出空间,平均来讲要移动N/2次,这
ysvae
·
2017-12-20 17:00
Java数据结构
和算法(链表)
目录1、链表(LinkedList)2、单向链表(Single-LinkedList)①、单向链表的具体实现②、用单向链表实现栈4、双端链表①、双端链表的具体实现②、用双端链表实现队列5、抽象数据类型(ADT)6、有序链表7、有序链表和无序数组组合排序8、双向链表9、总结前面我们知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都
暮秋十九
·
2017-12-19 19:41
Java数据结构
和算法(八)——递归
记得小时候经常讲的一个故事:从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事,故事内容是“从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事,故事内容......”什么是递归,上面的小故事就是一个明显的递归。以编程的角度来看,程序调用自身的编程技巧称为递归(recursion)。百度百科中的解释是这样的:递归做为一种算法在程
YSOcean
·
2017-12-15 09:00
Java数据结构
之栈
package com.xingej.algorithm.datastructure.stack;/** * 数据结构之栈Stack * * 以long类型为测试用例 * * @author erjun 2017年12月4日 下午10:22:34 */public class LongStack { // 底层数据存储 private long[] arr; // 最大元素数
故新
·
2017-12-07 08:50
java
数据结构
栈
Java
Java数据结构
之数组
自定义数组(面向对象编程):直接上代码:package com.xingej.algorithm.datastructure.array;/** * 面向对象编程 * * 自定义类数组 * * 你一定要明白,这是在JDK基础之上的封装,要学会这种思路,其他框架如netty 也是在前者的基础上封装而来的,如有一 * * 部分是封装的线程池 * * @author erjun 2017年11月
故新
·
2017-12-06 09:29
java
数据结构
数组
Java
Java数据结构
和算法(四)——栈
前面我们讲解了数组,数组更多的是用来进行数据的存储,纯粹用来存储数据的数据结构,我们期望的是插入、删除和查找性能都比较好。对于无序数组,插入快,但是删除和查找都很慢,为了解决这些问题,后面我们会讲解比如二叉树、哈希表的数据结构。而本篇博客讲解的数据结构和算法更多是用作程序员的工具,它们作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生命周期比数据库类型的结构要短得多,在程序执行期间
YSOcean
·
2017-12-04 11:00
Java数据结构
和算法(一)--前言
写在前面的话,话说很久以来一直下定决心好好的学数据结构和算法,视频存储了不少,九章学院的,慕课网的,普林斯顿的算法,书籍也弄了不少,可是每次都太监了,我就再想是否我太依赖别人了,没有督促的动力,而且,别人的公众号也看了不少,可是每次都看得很热闹,问自己还是啥都不会,这次,就下定决心用博客记录自己的学习经历。望大家监督。下面是我的列的学习提纲。以后的学习会按着这个思路来。一、学习主要知识1、数组、集
我干过羊_
·
2017-12-02 22:28
java数据结构
读书笔记--引论
1递归简论需求:求出f(x)=2f(x-1)+x²的值。满足f(0)=0publicclassRecursion{//需求:求出f(x)=2f(x-1)+x²的值。满足f(0)=0publicstaticvoidmain(String[]args){intf=f(1);System.out.println(f);}publicstaticintf(intx){//1当x=1的时候f(1)=1f(0
GoSaint
·
2017-11-30 23:14
算法
Java数据结构
和算法(一)——简介
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通过降低牵引力来获得更快的行驶速度。那么爬坡时使用1档,便可以获得更大的牵引力;下坡时便使用低档限制车的
IT可乐
·
2017-11-28 09:09
Java数据结构
和算法之归并排序
正如我们所知,我们在学习数据结构和算法的时候必然逃不过有关于数组的排序方法,我们应该掌握的方法或许有很多,但是最基本或者说被公认为的八大排序是我们在不具备设计算法和更改算法的情况下应该去学习掌握的。在很久以前已经学习过用C语言进行实现,但是现在准备从事关于Java的工作,所以需要实践起来,用java进行实现。学习的基础都是在努自己动手的实践。今天实现归并排序,因为我对这个排序方法却是情有独钟,作
GoNewLife
·
2017-11-26 20:17
数据结构之数组
java数据结构
之树基本概念解析及代码示例
Java中树的存储结构实现一、树树与线性表、栈、队列等线性结构不同,树是一...节点与节点之间的父子关系,可以为每个节点增加一个parent域,用以记录该节点的父点树是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树
牛头人
·
2017-11-21 16:40
java数据结构
和算法
java数据结构
与算法写给读者的话:本人是一个刚刚毕业的程序员,大学期间数据结构学的比较扎实,来工作后发现虽然概念都知道,但是应用不是很熟练,所以打算重新撸几遍数据结构,正好在写java,这里就用java
伟大的华仔
·
2017-11-20 13:44
java
java数据结构
之希尔排序
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。实现:先取一个正整数d10;gap/=3){for(i=gap;i=0&&old[j]>temp;j-=gap){o
阿木侠
·
2017-11-09 16:15
java数据结构
之插入排序
插入排序就是把当前待排序的元素插入到一个已经排好序的列表里面。一个非常形象的例子就是右手抓取一张扑克牌,并把它插入左手拿着的排好序的扑克里面。插入排序的最坏运行时间是O(n2),所以并不是最优的排序算法。如果输入数组已经是排好序的话,插入排序出现最佳情况,其运行时间是输入规模的一个线性函数。如果输入数组是逆序排列的,将出现最坏情况。平均情况与最坏情况一样,其时间代价是Θ(n2)。简单例子:publ
阿木侠
·
2017-11-09 16:09
java数据结构
(四)
关于树的基本概念可以查看此篇文章树、堆、集合1、一般树的实现:树结构可以由递归实现,也可以由链表实现:链表实现的单个节点的表示方法:classTreeNode{Objectelement;//节点的值TreeNodefirstChild;//该节点的第一个子节点TreeNodenextSibling;//下一个兄弟节点}树的遍历:分为前序遍历、后续遍历,二叉树还有一种特殊的遍历方法(中序遍历);前
谁吃了我的薯条
·
2017-11-06 20:02
Java数据结构
与算法(4) -冒泡排序
不过还是要给自己制定一个计划,每天学习一小节《
Java数据结构
与算法》和看一小节刘宇波老师的《数据结构与算法》视频,还有就是学习SpringBoot项目课程。
cmazxiaoma
·
2017-11-05 22:55
Java数据结构
之集合
前言Java中集合大家族的成员实在是太丰富了,有常用的ArrayList、HashMap、HashSet,也有不常用的Stack、Queue,有线程安全的Vector、HashTable,也有线程不安全的LinkedList、TreeMap等等。java集合类一、Collection接口Collection接口是最基本的集合接口,它不提供直接的实现,JavaSDK提供的类都是继承自Collecti
AndryYu
·
2017-11-05 20:16
Java数据结构
之红黑树的真正理解
真正的帮助大家理解红黑树:一、红黑树所处数据结构的位置:在JDK源码中,有treeMap和JDK8的HashMap都用到了红黑树去存储红黑树可以看成B树的一种:从二叉树看,红黑树是一颗相对平衡的二叉树二叉树-->搜索二叉树-->平衡搜索二叉树-->红黑树从N阶树看,红黑树就是一颗2-3-4树N阶树-->B(B-)树故我提取出了红黑树部分的源码,去说明红黑树的理解看之前,理解红黑树的几个特性,后面的
何锦彬
·
2017-11-02 08:53
Java数据结构
之有效队列定义与用法示例
本文实例讲述了
Java数据结构
之有效队列定义与用法。
CharlinGod
·
2017-10-25 08:20
Java数据结构
之循环队列简单定义与用法示例
本文实例讲述了
Java数据结构
之循环队列简单定义与用法。
CharlinGod
·
2017-10-24 10:36
Java数据结构
之栈的基本定义与实现方法示例
本文实例讲述了
Java数据结构
之栈的基本定义与实现方法。分享给大家供大家参考,具体如下:一、概述:1、基本概念:栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。
CharlinGod
·
2017-10-24 09:44
Java数据结构
之队列的简单定义与使用方法
本文实例讲述了
Java数据结构
之队列的简单定义与使用方法。
CharlinGod
·
2017-10-24 09:07
Java数据结构
之简单的连接点(link)实现方法示例
本文实例讲述了
Java数据结构
之简单的连接点(link)实现方法。
CharlinGod
·
2017-10-24 08:58
Java数据结构
之简单链表的定义与实现方法示例
本文实例讲述了
Java数据结构
之简单链表的定义与实现方法。分享给大家供大家参考,具体如下:一、概述:1、原理:只有一个数据项(链接点Link),每个数据插入时都是对第一个数据的引用。
CharlinGod
·
2017-10-23 11:16
Java数据结构
之双端链表原理与实现方法
本文实例讲述了
Java数据结构
之双端链表原理与实现方法。
CharlinGod
·
2017-10-23 10:56
Java数据结构
与算法解析(十三)——优先级队列
在很多应用中,我们通常需要按照优先级情况对待处理对象进行处理,比如首先处理优先级最高的对象,然后处理次高的对象。最简单的一个例子就是,在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话。在这种情况下,我们的数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(PriorityQueue)。定义优先级队列和通常的栈和队列一样,只不
伯努力不努力
·
2017-10-21 10:07
数据结构与算法
数据结构
算法
优先级队列
java数据结构
之二分查找法 binarySearch的实例
java数据结构
之二分查找法binarySearch的实例折半查找法,前提是已经排好序的数组才可查找实例代码:publicclassBinarySearch{int[]bArr;publicvoidsetArr
zw7534313
·
2017-10-19 15:26
java数据结构
与算法的基础总结
java中的数据结构与算法本文参考文章:
Java数据结构
与算法之学习路线最全的数据结构解析与归纳数据结构首先,要清楚数据结构的概念:数据结构是计算机存储、组织数据的方式。
一头水牛
·
2017-10-09 11:30
java
数据结构
算法
java
Java数据结构
与算法解析(十)——2-3树
二叉查找树对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低。平衡查找树的数据结构能够保证在最差的情况下也能达到lgN的效率,要实现这一目标我们需要保证树在插入完成之后始终保持平衡状态,这就是平衡查找树(BalancedSearchTree)。在一棵具有N个节点的树中,我们希望该树的高度能够维持在lgN左右,这样我们就能保证只需要lgN次比较操作就可以查找到想要的
伯努力不努力
·
2017-10-01 08:12
数据结构与算法
java 数据结构中栈和队列的实例详解
java数据结构
中栈和队列的实例详解栈和队列是两种重要的线性数据结构,都是在一个特定的范围的存储单元中的存储数据。与线性表相比,它们的插入和删除操作收到更多的约束和限定,又被称为限定性的线性表结构。
皮蛋小粥
·
2017-09-27 09:06
Java数据结构
之链表_动力节点Java学院整理
单链表:insertFirst:在表头插入一个新的链接点,时间复杂度为O(1)deleteFirst:删除表头的链接点,时间复杂度为O(1)find:查找包含指定关键字的链接点,由于需要遍历查找,平均需要查找N/2次,即O(N)remove:删除包含指定关键字的链接点,由于需要遍历查找,平均需要查找N/2次,即O(N)1.publicclassLinkedList{2.privateclassDa
f5465245
·
2017-09-25 16:37
Java数据结构
Java编程
java
Java开发
链表
详解
Java数据结构
和算法(有序数组和二分查找)
一、概述有序数组中常常用到二分查找,能提高查找的速度。今天,我们用顺序查找和二分查找实现数组的增删改查。二、有序数组的优缺点优点:查找速度比无序数组快多了缺点:插入时要按排序方式把后面的数据进行移动三、有序数组和无序数组共同优缺点删除数据时必须把后面的数据向前移动来填补删除项的漏洞四、代码实现publicclassOrderArray{privateintnElemes;//记录数组长度priva
临窗听雨
·
2017-09-23 16:29
Java数据结构
和算法(有序数组和二分查找)
一、概述有序数组中常常用到二分查找,能提高查找的速度。今天,我们用顺序查找和二分查找实现数组的增删改查。二、有序数组的优缺点优点:查找速度比无序数组快多了缺点:插入时要按排序方式把后面的数据进行移动三、有序数组和无序数组共同优缺点删除数据时必须把后面的数据向前移动来填补删除项的漏洞四、代码实现publicclassOrderArray{privateintnElemes;//记录数组长度priva
临窗听雨
·
2017-09-23 14:37
Java数据结构
与算法之栈(Stack)实现详解
本篇是
java数据结构
与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点:栈的抽象数据类型顺序栈的设计与实现链式栈的设计与实现栈的应用栈的抽象数据类型 栈是一种用于存储数据的简单数据结构
Angel_Kitty
·
2017-09-12 11:15
java线性表的存储结构及其代码实现
Java数据结构
学习笔记第一篇:用程序后在那个的数据大致有四种基本的逻辑结构:集合:数据元素之间只有"同属于一个集合"的关系线性结构:数据元素之间存在一个对一个的关系树形结构:数据元素之间存在一个对多个关系图形结构或网状结构
Angel_Kitty
·
2017-09-12 11:05
java数据结构
和算法 - 2
有序数组(二分查找):查找速度比无序数组快很多,但是插入速度由于靠后的数据需要移动以腾开.删除速度和无序数组一样很慢.实用场景适合于查找频繁的系统,比如公司雇员的数据库.当数据越多,二分法查找的优势就越大.简单排序:冒泡排序(最简单)算法作了大约N²/2次的比较.如果数据是随机的,那么大约有一半需要交换,交换次数是N²/4.只要是一个循环嵌套在另一个循环里面,这个算法的运行时间为O(N²)级.在许
幻飞飞
·
2017-09-11 16:20
上一页
39
40
41
42
43
44
45
46
下一页
按字母分类:
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
其他