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数据结构和算法
- 2
有序数组(二分查找):查找速度比无序数组快很多,但是插入速度由于靠后的数据需要移动以腾开.删除速度和无序数组一样很慢.实用场景适合于查找频繁的系统,比如公司雇员的数据库.当数据越多,二分法查找的优势就越大.简单排序:冒泡排序(最简单)算法作了大约N²/2次的比较.如果数据是随机的,那么大约有一半需要交换,交换次数是N²/4.只要是一个循环嵌套在另一个循环里面,这个算法的运行时间为O(N²)级.在许
幻飞飞
·
2017-09-11 16:20
JAVA数据结构和算法
:第四章(HashMap和HashSet底层原理及实现)
HashMap内部原理及实现什么是哈希表?哈希表(hashtable)也叫散列表,是一种非常重要的数据结构,我们先来看一下其他数据结构的特点。数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),对于一般的插入删除操作,涉及到数组元素的移动,其平均复杂度也为O(n)链表:对于链表的新增
春水上行
·
2017-08-27 18:10
数据结构
数据结构和算法(JAVA)
java与C++的不同(笔记)
早在去年就学习过Java核心技术卷1,然后一直没多少空学习卷2,最近学完了,然后开始学习
Java数据结构和算法
,这里做一点java与C++的不同的笔记。1、C++的指针与Java的引用(或者指针?)
Sir_wang
·
2017-08-23 09:39
C++高级编程笔记
java
JAVA数据结构和算法
:第一章(时间复杂度和空间复杂度)
数据结构数据结构基础概念不论是哪所大学,数据结构和算法这门课都被贯上无趣、犯困、困难的标签,我们从最基础最通俗的语言去说起,保证通俗易懂。数据结构到底是什么呢?我们先来谈谈什么叫数据。数据:数据是描述客观事物的数值、字符以及能输入给计算机且能被计算机处理的各种符号集合。简单的来说,数据就是计算机化的信息。数据元素:是组成数据的基本单位,在计算机中通常被作为一个整体进行考虑和处理。也被称为记录。数据
春水上行
·
2017-08-20 15:03
数据结构
数据结构和算法(JAVA)
Java数据结构和算法
(2)--《
Java数据结构和算法
》第二版 Robert lafore第二章【数组】编码作业
前言最近在在看《
Java数据结构和算法
》这本书,这本书很不错,值得细看。看完了第二章-数组篇。所以写这一篇章节小结,正好附上自己写的编程作业源码,供大家参考。
cmazxiaoma
·
2017-07-06 23:13
Java数据结构和算法
数据结构是对在计算机内存中(有时候在磁盘中)的数据的一种安排。数据结构包括数组、链表、栈、二叉树、哈希表等等。数据结构有哪些用途呢?首先,可以模拟现实世界数据的存储,进行现实世界的建模,最重要的数据结构是图,可以用来表示城市之间,城市内部的道路,电路中的连接,或是任务的安排关系;其次,有些数据结构并不打算让用户接触,它们仅被程序本身所使用,程序员经常将诸如栈、队列、优先级队列等结构当作程序员的工具
clamaa
·
2017-04-11 09:38
java
数据结构
Java数据结构和算法
数据结构是对在计算机内存中(有时候在磁盘中)的数据的一种安排。数据结构包括数组、链表、栈、二叉树、哈希表等等。 数据结构有哪些用途呢?首先,可以模拟现实世界数据的存储,进行现实世界的建模,最重要的数据结构是图,可以用来表示城市之间,城市内部的道路,电路中的连接,或是任务的安排关系;其次,有些数据结构并不打算让用户接触,它们仅被程序本身所使用,程序员经常将诸如栈、队列、优先级队列等结构当作程序员的
clamaa
·
2017-04-11 09:00
Java数据结构和算法
:二叉树
二叉树的实现数组查询快,增删慢;链表增删快,查询慢;二叉树查询和增删都有很好的性能packagecom.itheiam62;/***@描述中序遍历是有序的二叉树(不重复)**/publicclassMyTree{privateNoderoot;//根节点privateclassNode{Nodeparrent;//父节点Nodeleft;//左儿子Noderight;//右儿子Objectdata
Jack-Chan
·
2017-01-10 23:57
数据结构与算法
栈结构应用的两个实例
两个实例来自
Java数据结构和算法
.(第二版)第四章1、单词逆序。 要求从控制台读入一串字符,按回车结束输入,同时显示其逆序字符串。对于颠倒顺序的操作,用栈来解决是很方便的。
xiaokang123456kao
·
2017-01-05 09:00
数据结构
栈
Java数据结构和算法
:HashMap的实现原理
HashMap源码理解Java集合之HashMapHashMap原理及实现学习总结HashMap源码分析HashMap原理及实现学习总结1.HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2.HashMap的数据结构在java编程语言中,最基本的结构就是两种,一
Jack-Chan
·
2017-01-05 08:57
数据结构与算法
Java数据结构和算法
-高级排序(1-希尔排序)
在之前所讲的简单排序,虽然简单易实现,但是速度很慢,归并排序速度不慢,也易实现,但是却需要原始数组两倍大的空间。在本章所讲的高级排序:希尔排序和快速排序都要比简单排序快得多:希尔排序只需要时间O(N*log(N)^2),而快速排序只需要时间O(N*log(N))。并且希尔排序和快速排序都不需要很大的辅助空间,希尔排序和归并排序一样容易实现,而快速排序是当前所讲的排序当中速度最快的一种。希尔排序希尔
Jane_No1
·
2016-12-30 11:42
Java数据结构和算
Java数据结构和算法
-归并排序的递归应用
归并排序是一种比简单排序快很多的排序算法,在之前介绍的简单排序比如冒泡排序、选择排序的时间都是O(N^2),而归并排序只需要O(N*log(N))的时间,从下图就可以发现归并排序比简单排序要快多少:而且归并排序的实现相当容易。它的唯一的缺点就是需要在存储器中有一个与原数组相同大小的数组,如果初始的数组已经几乎占满了整个存储器,那么归并排序将是不可行的,不过如果存储器有足够的空间,那么这将是一个不错
Jane_No1
·
2016-12-29 12:07
Java数据结构和算
Java数据结构和算法
-链表(5-迭代器)
在链表中可以通过find()方法来查找到某一个特定的值,也可以通过delete方法删除某一个特定的值。这些操作都有一个搜索的工作,以找到特定的链接点。在链表中进行一次某个值的查找删除或插入是简单的。但是现实中,经常会进行的是对某些特定的链接点的操作,而这些操作也都要进行搜索的工作。例如:要查找出所有某班成绩低于平均成绩的同学,要改变公司所有拥有最低工资的员工工资。这些都要进行搜索。但是链表不是数组
Jane_No1
·
2016-12-23 15:52
Java数据结构和算
Java数据结构和算法
-链表(4-双向链表)
传统的链表沿链表进行反向遍历是很困难的,比如:current=current.next可以很快的找到下一个链接点,但是却没有方法返回前一个链接点。根据应用的不同,这个限制可能为会引发一些问题。比如在之前提到过的要删除链表当中的最后一个链接点,虽然在双端链表中,可以通过last的引用很快的找到最后一个链接点,但是由于倒数第二个链接点无法快速找到(删除最后一个链接点时,需要将last指向倒数第二个链接
Jane_No1
·
2016-12-21 17:56
Java数据结构和算
Java数据结构和算法
-链表(3-有序链表)
链表的效率在表头当中插入和删除的速度是很快的,仅仅需要一到两个引用值,和链接点的多少无关,只需O(1)的时间。不过,查找和删除指定的链接点和在指定位置插入链接点仍然需要搜索一半的链接点,所以比较时间为O(N)。虽然,数组的查找、插入和删除的比较时间也为O(N),但链表在插入和删除链接点的时候不需要移动任何东西,这样增加的效率是显著的,特别是在复制时间比比较时间大的多时。还有一点就是链表的内存大小是
Jane_No1
·
2016-12-12 14:43
Java数据结构和算
Java数据结构和算法
-栈和队列(4-解析算术表达式)
解析算术表达式,例如3+4*5等和之前所学的例子匹配分隔符类似,都是利用栈来实现的,只不过解析算术表达式会更复杂一些。计算机算法直接求算术表达式是很难的,但是通过下面两个步骤实现算法会相对容易很多:将算术表达式转换为另一种表达式:后缀表达式。计算后缀表达式的值。在研究两个步骤的具体实现之前,我们先介绍后缀表达式。后缀表达法在生活中,我们使用的都是中缀表达式,即将操作符放在两个操作数的中间,比如:3
Jane_No1
·
2016-12-07 11:48
Java数据结构和算
Java数据结构和算法
-简单排序(1-冒泡排序)
一般在创建数据库之后,就可能对某些数据进行排序。例如:对商店的销售品按价格排序,对城市按人口增长率进行排序等。排序一般作为检索的一个初始步骤,正如在前面所讲的数组中,二分查找要比线性查找快的多,但是二分查找只适用于有序的数据。排序非常重要但又十分耗时,因此它成为了一个计算机科学领域广泛研究的课题,并且也已经有了不少的成就。比如在本章的简单排序中的冒泡排序、选择排序和插入排序。本章描述的算法很简单,
Jane_No1
·
2016-12-02 14:48
Java数据结构和算
Java数据结构和算法
-数组
1.Java数组的基础知识1.1创建数组Java当中的数据类型有两类,一类是基础类型(如int和double),还有一类是对象类型,在许多编程语言中(如C和C++),数组属于基础类型,但在Java当中,数组属于对象,所以数组的创建方式利用new操作符:int[]array;//定义对数组的引用array=newint[100];//创建一个数组,并且利用array来引用它或者使用等价的单语句声明方
Jane_No1
·
2016-11-28 16:15
Java数据结构和算
Java数据结构和算法
-综述
Java数据结构和算法
是对RobertLafore的
Java数据结构和算法
学习的以自己方式的总结,里面可能会有绝大部分的内容和书上描述差不多(原谅我的语文不怎么好)。
Jane_No1
·
2016-11-28 11:01
Java数据结构和算
java数据结构和算法
(IndexMaxPQ)
packagecn.xyc.sort.maxPQ;importjava.util.Iterator;importjava.util.NoSuchElementException;/****描述:索引数组pq保存的是数据集keys中的下标,遍历索引数组可以刻画出二叉堆*其中keys指的是IndexMaxPQ.java里的一个成员变量*keys={it,was,the,best,of,times,it
蒙奇D许
·
2016-10-13 18:02
java数据结构和算法
Java数据结构和算法
——二叉查找树
简介二叉查找树(BinarySearchTree),又称为二叉搜索树。先学习下树的知识吧。树树的定义树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。树具有以下特点:每个节点都有零个或多个子节点;没有父节点的节点称为根节点;每个非根节点(也就是子节点)有且只有一个父节点;除根节点外,每个子节点可以分为多个不互相交叉的子树;“节点”和“结点”有什么区别一个节点是两线相交,中
一叶飘舟
·
2016-07-02 23:44
java
Java数据结构和算法
——二叉查找树
简介二叉查找树(BinarySearchTree),又称为二叉搜索树。先学习下树的知识吧。树树的定义树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。树具有以下特点:每个节点都有零个或多个子节点;没有父节点的节点称为根节点;每个非根节点(也就是子节点)有且只有一个父节点;除根节点外,每个子节点可以分为多个不互相交叉的子树;“节点”和“结点”有什么区别一个节点是两线相交,中
jdsjlzx
·
2016-07-02 23:00
二叉树
Java数据结构和算法
——队列
介绍队列(Queue),是一种线性存储结构。它有以下几个特点:数据按照”先进先出”方式进出队列;只允许在”队首”进行删除操作,”队尾”进行插入操作。队列通常包括的两种操作:入队列和出队列。示意图队列中有10,20,30共3个数据。出队列出队列前:队首是10,队尾是30。出队列后:出队列(队首)之后。队首是20,队尾是30。入队列入队列前:队首是20,队尾是30。入队列后:40入队列(队尾)之后。队
jdsjlzx
·
2016-07-02 14:00
数据结构
队列
添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)— 数据结构和算法
《
Java数据结构和算法
》英文《DataStr
longronglin
·
2016-06-27 13:00
Java数据结构和算法
——栈
简介栈(stack),是一种线性存储结构,它有以下几个特点:1.栈中数据是按照”后进先出(LIFO,LastInFirstOut)”方式进出栈的。2.向栈中添加/删除数据时,只能从栈顶进行操作。栈通常包括的三种操作:push、peek、pop。push–向栈中添加元素。peek–返回栈顶元素。pop–返回并删除栈顶元素的操作。栈的示意图栈中的数据依次是30–>20–>10出栈出栈前:栈顶元素是30
jdsjlzx
·
2016-06-26 23:00
数据结构
栈
Java数据结构和算法
——数组、单向链表、双向链表
概要线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列。本文先介绍线性表的几个基本组成部分:数组、单向链表(One-wayLinkedList)、双向链表(two-waylinked-list)。数组数组有上界和下界,数组的元素在上下界内是连续的。存储10、20、30、40、50的数组的示意图如下:数组的特点:1.数据是连续的;2.随机访问速度快。数组中稍微复杂一点的是多
jdsjlzx
·
2016-06-21 22:00
算法
链表
线性表
Java数据结构和算法
——开篇
如果说Java是自动档轿车,C就是手动档吉普。数据结构呢?是变速箱的工作原理。你完全可以不知道变速箱怎样工作,就把自动档的车子从A开到B,而且未必就比懂得的人慢。写程序这件事,和开车一样,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,也不能造车。如果你对这两件事都不感兴趣也就罢了,数据结构懂得用就好。但若你此生在编程领域还有点更高的追求,数据结构是绕不开的课题。
jdsjlzx
·
2016-06-19 10:00
数据结构
《
Java数据结构和算法
(第二版)》读书笔记
第2,3章数组和简单排序publicclassArrayBub{privatelong[]a;privateintnElems;//数组长度publicArrayBub(intmax){a=newlong[max];nElems=0;}//插入publicvoidinsert(longnum){a[nElems]=num;nElems++;}//显示publicvoiddiaplay(){for(
jlinglinglei
·
2016-05-19 13:56
读书笔记
[置顶]
java数据结构和算法
目录(持续更新中)
java数据结构和算法
目录
eson_15
·
2016-04-12 19:00
java
数据结构
算法
《
Java数据结构和算法
》Seven 高级排序 快速排序
基本思想是:通过一趟排序将待排序记录分成独立的两部分,其中一部分的关键字均比另一部分的关键字小,再分别对这两部分进行排序。(1)将数组分成左右两部分(2)递归调用自身对左右两部分排序 public void recQuickSort(int left,int right){ int partition = partitionIt(left,right); recQuickSor
DouDouLee
·
2016-04-02 23:00
《
Java数据结构和算法
》Seven 高级排序 希尔排序
希尔排序基于插入排序,通过加大排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,使数据项大跨度的移动。当这些数据项排过一趟序后,希尔排序算法减小数据项之间的间隔,依次下去直到间隔为1,成为普通插入排序。如下图,以4为间隔的排序的全过程:将0、4、8位对应的数据进行排序,接着右移一位对1、5、9对应位进行排序……以4为间隔排序进行完后数组基本有序。 package Structure; c
DouDouLee
·
2016-04-02 23:00
《
Java数据结构和算法
》Six 递归
递归是一种自己调用自己的编程技术。1、三角数字1、3、6、10、15、21……第n项=n-1项的值+npackage Structure; import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; public class triangleD { static
DouDouLee
·
2016-03-26 22:00
《
Java数据结构和算法
》双向链表
与单向链表相比,提供了前向遍历的能力。其每个链结点有两个指向其他链结点的引用(next,previous)。双向链表的各种操作看图比较容易理解。 package Structure; class LinkX{ public long dData; public LinkX next; public LinkX previous; public LinkX(long d){
DouDouLee
·
2016-03-21 20:00
《
Java数据结构和算法
》双端链表
与单链表的不同:新增一个对最后一个链结点的引用,使其可以像在表头插入链结点一样在表尾插入结点;而若在单链表的表尾插入结点就需要遍历整个链表直到表尾。//链尾插入 public void insertLast(long dd){ LinkD newLink = new LinkD(dd); if(isEmpty()) first = newLink; else last.
DouDouLee
·
2016-03-19 11:00
《
Java数据结构和算法
》单链表
1、链结点链表中。每个数据项都被包含在链结点中(Link),即Node,每个链结点Link都包含一个data和一个对下一个链结点的引用class Link{ public int iData; public douvle dData; public Link next;//reference to next data }这种类定义有时叫“自引用”式,因为它包含了一个和自己类
DouDouLee
·
2016-03-19 11:00
《
Java数据结构和算法
》栈 分隔符分配
分隔符包括“{“、"["、”(”、“]“、“)“、“}”,每个左分隔符需要右分隔符匹配。同时,在字符串中后出现左分隔符应该比早出现的先匹配。程序从字符串中不断读取字符,每次读取一个字符。若发现是左分隔符,压入栈中;当读到一个右分隔符,弹出栈的左分割符与其比较,如果不匹配则报错。栈中没有左分隔符和右分隔符匹配/一直存在着没有被匹配的分隔符,报错。 //栈 package StructureBrac
DouDouLee
·
2016-03-16 23:00
《
java数据结构和算法
》栈字母逆序
栈只允许访问一个数据项,即最后插入的数据项。用数组实现一个栈如下: class StackX{ private int maxSize; private long[] stackArray; private int top; public StackX(int s){ maxSize = s; stackArray = new long[maxSize]; top = -1
DouDouLee
·
2016-03-15 20:00
《
Java数据结构和算法
》简单排序插入排序
最左边的一个队员0号看作是有序的,从一号开始作为要插入的数据,将1号暂时保存在临时数据temp中,与其左边的0号比较,若比0号矮,将0号右移到刚刚自己的位置(1号),temp插入原来0号的位置,现在0、1号已经拍排好了;现在2号成为要插入的数据项,同样将2号暂时存在temp中,分别与0号与1号比较,直到遇到比他矮的(假设为0号),将1号移到自己的空位2号,自己插入1号,现在0、1、2号已经排好了…
DouDouLee
·
2016-03-15 16:00
《
Java数据结构和算法
》简单排序选择排序
排序从球员队列最左边0开始,记录下最左边队员身高,与下一个队员比较,如果这个队员比最左边的矮,替换刚才的最矮记录,再向右比较过程中不断更新最矮记录,最后得到最矮队员的下标,将他与最左边的队员交换;之后,从最左+1号队员开始以同样的过程比较,得到次矮队员的下标,将其与最左+1号交换……public void selectSort(){ int out,in,min; /*外层循环用循环变量
DouDouLee
·
2016-03-15 15:00
《
Java数据结构和算法
》简单排序冒泡排序
假设有N个运动员,编号0--N-1,从最左边开始:0与1比较,若0比1高,两者交换;接着1与2比较,若1比2高1与2交换……此次最高的排到最右边了完成了一个排序;再一次从左到右比较到N-2号,此次排序次高的排到了N-2号……public void bubbleSort(){ int out,in; for(out=nElems-1;out>1;out--) for(in=0;ina[
DouDouLee
·
2016-03-14 23:00
【Java】
Java数据结构和算法
(二)——栈和队列
栈栈只允许访问一个数据项:即最后插入的数据项。移除这个数据项后才能访问到倒数第二个插入的数据项。栈操作所耗的时间不依赖于栈中数据项的个数,栈不需要比较和移动操作,数据项入栈和出栈的时间复杂度都为常数O(1)。队列队列第一个插入的数据项会最先被移除(先进先出,FIFO)。队列中插入数据项和移除数据项的时间复杂度均为O(1)。优先级队列优先级队列有一个队头和一个队尾,并且也是从队头移除数据项。不过在优
shandianke
·
2016-01-10 21:00
【Java】
Java数据结构和算法
(一)
参考文献:
Java数据结构和算法
(第二版)RobertLafore著计晓云译
shandianke
·
2016-01-09 18:00
o(∩_∩)o...哈哈 somethingaboutJAVA
http://115.com/file/e7sg3x0e#
Java数据结构和算法
(第二版).pdf http://115.com/file/bewt6nj5# Java.2.Bible.pdf
·
2015-11-02 17:06
java
java数据结构和算法
------插入排序
1 package iYou.neugle.sort; 2 3 public class Insert_sort { 4 public static void InsertSort(double[] array) { 5 for (int i = 1; i < array.length; i++) { 6 double
·
2015-10-31 09:16
java
java数据结构和算法
------选择排序
1 package iYou.neugle.sort; 2 3 public class Select_sort { 4 public static void SelectSort(double[] array) { 5 for (int i = 0; i < array.length - 1; i++) { 6 int
·
2015-10-31 09:16
java
java数据结构和算法
------冒泡排序
1 package iYou.neugle.sort; 2 3 public class Bubble_sort { 4 public static void BubbleSort(double[] array) { 5 for (int i = 0; i < array.length - 1; i++) { 6 for
·
2015-10-31 09:16
java
java数据结构和算法
------合并排序
1 package iYou.neugle.sort; 2 3 public class Merge_sort { 4 5 public static void MergeSort(double[] array, int start, int end) { 6 if (start < end) { 7
·
2015-10-31 09:16
java
java数据结构和算法
------线性表(链表结构)
1 package iYou.neugle.list; 2 3 // 链表数据结构 4 public class Node<T> { 5 // 该节点的值 6 public T data; 7 // 该节点指向的下一个节点 8 public Node<T> next; 9 } 1 package iYou.neug
·
2015-10-30 12:36
java
java数据结构和算法
------二叉排序树
1 package iYou.neugle.search; 2 3 public class BSTree_search { 4 class BSTree { 5 public int data; 6 public BSTree left; 7 public BSTree right; 8
·
2015-10-30 12:35
二叉排序树
java数据结构和算法
------线性表(顺序表结构)
1 package iYou.neugle.list; 2 3 public class MySeqList<T> { 4 private int initMaxSize = 10; 5 private T[] list; 6 private int listLen = 0; 7 8 public MySeqList()
·
2015-10-30 12:35
java
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他