算法导论(java版本)
在奋斗的大道
程序发烧友
展开
-
排序算法(java版本)
1, 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现 package com.njue; public class insertSort { public insertSort()原创 2013-08-22 22:09:56 · 659 阅读 · 0 评论 -
java 数据结构----------堆栈和队列
队列的基本概念 队列(简称队)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同。差别是线性表允许在任意位置插入和删除,而队列只允许在一端进行插入操作而在另一端进行删除操作。 队列中允许插入操作的一端称为队尾,允许进行删除操作的一端称为队头。队列的插入操作通常称为入队列,队列的删除操作通常称为出队列。原创 2013-11-05 10:01:52 · 790 阅读 · 0 评论 -
java 数据结构-------串
串是若干个字符组成的有限序列。大部分的软件系统都会频繁使用串。串也是一种线性结构。和线性表不同的是,串的操作特点是一次操作若干个数据元素,即一次操作一个字符串。串通常采用顺序存储结构存储,模式匹配是串的一个非常重要的操作,但是模式匹配的时间效率很差。Brute-Force和Kmp算法是两种最经典的串模式匹配算法。 串的基本概念和抽象数据类型 串(也称字符串)是由n(n>原创 2013-11-05 13:35:42 · 2454 阅读 · 0 评论 -
java 数据结构--------数组、集合和矩阵
数组是程序设计最常使用的一种数据结构。高级程序设计语言通常都支持数组功能。集合是某种具有相同数据类型的数据元素全天。矩阵一般采用二维数组存储。数组和矩阵是属于线性结构。 大的矩阵需要的内存单元数量很大,对特殊矩阵和稀疏矩阵可采用一些特殊方法减少内存单元数量,这称为特殊矩阵和稀疏矩阵的压缩存储。 数组1、数组的定义原创 2013-11-05 16:06:54 · 7668 阅读 · 0 评论 -
Java数据结构-------树介绍
树(tree) 树(tree)是包含n(n>0)个结点的有穷集合,其中:每个元素称为结点(node);有一个特定的结点被称为根结点或树根(root)。除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1 树也可以这样定义:树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的转载 2013-11-07 13:42:50 · 845 阅读 · 0 评论 -
数据结构Java实现01----算法概述
本文转载至:http://www.cnblogs.com/smyhvae/p/4724692.html一、数据结构涵盖的内容:二、算法的基本概念:1、算法的概念:Algorithm,是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或者多个操作。2、算法的特性:有穷性:指令序列是有限的确定性:每条语句的含义明确,无转载 2017-04-22 05:25:47 · 698 阅读 · 0 评论 -
数据结构Java实现02----线性表与顺序表
本文转载至:http://www.cnblogs.com/smyhvae/p/4758808.html本节内容:线性结构线性表抽象数据类型顺序表顺序表应用 一、线性结构:如果一个数据元素序列满足:(1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素;(2)第一个数据元素没有前驱数据元素;(3)最后转载 2017-04-22 05:26:43 · 398 阅读 · 0 评论 -
数据结构Java实现03----单向链表的插入和删除
本文转载至:http://www.cnblogs.com/smyhvae/p/4761593.html文本主要内容:链表结构单链表代码实现单链表的效率分析一、链表结构: (物理存储结构上不连续,逻辑上连续;大小不固定) 概念: 链式存储结构是基于指针实现的。我们把一个数据元素和一个指针称为结点。 数据域:存数数转载 2017-04-22 05:27:18 · 851 阅读 · 0 评论 -
数据结构Java实现04----循环链表、仿真链表
本文转载至:http://www.cnblogs.com/smyhvae/p/4768538.html单向循环链表双向循环链表仿真链表 一、单向循环链表:1、概念:单向循环链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环。和单链表相比,循环单链表的长处是从链尾到转载 2017-04-22 05:28:15 · 812 阅读 · 0 评论 -
数据结构Java实现05----栈:顺序栈和链式堆栈
本文转载至:http://www.cnblogs.com/smyhvae/p/4789699.html一、堆栈的基本概念:堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除操作。先进后出:堆栈中允许进行插入和删除操作的一端称为栈顶,另一端称为栈转载 2017-04-22 05:28:42 · 2200 阅读 · 0 评论 -
数据结构Java实现06----中缀表达式转换为后缀表达式
本文转载至:http://www.cnblogs.com/smyhvae/p/4790373.html本文主要内容:表达式的三种形式中缀表达式与后缀表达式转换算法一、表达式的三种形式:中缀表达式:运算符放在两个运算对象中间,如:(2+1)*3。我们从小做数学题时,一直使用的就是中缀表达式。后缀表达式:不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出转载 2017-04-22 05:29:17 · 669 阅读 · 0 评论 -
Java数据结构---递归算法
Coding多了,递归算法是非常常见的,最近我一直在做树形结构的封装,所以更加的离不开递归算法。所以今天就简单说一下这个递归算法,用java实现一个非常经典的递归实例。 递归算法,其实说白了,就是程序的自身调用。它表现在一段程序中往往会遇到调用自身的那样一种coding策略,这样我们就可以利用大道至简的思想,把一个大的复杂的问题层层转换为一个小的和原问题相似的问题来求解的这转载 2013-11-05 16:22:45 · 835 阅读 · 0 评论 -
Java数据结构--------堆栈和队列
本章相关介绍: 堆栈和队列都是特殊的线性表。线性表、堆栈和队列三者的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的插入和删除操作不受限制,而堆栈只能在栈顶插入和删除,队列只能在队尾插入,在队头删除。堆栈和队列都可以分别用顺序存储结构和链式存储结构存储。顺序队列通常采用顺序循环队列方法实现,因为顺序循环队列可以避免顺序队列的“假溢出”问题。优先队原创 2013-11-04 16:50:20 · 1025 阅读 · 0 评论 -
Java算法结构---------线性表
线性表相关介绍: 线性表是一种最常用,最简单的线性结构。线性表的主要操作特定是,可以在任意位置上插入一个数据元素和删除一个数据元素。线性表可以用顺序存储结构和链式存储结构实现。用顺序存储结构实现的线性表称为顺序表,用链式存储结构实现的线性表称为链表。链表主要有单链表、循环单链表和循环双链表三种。 线性表的定义 如果一个数据元素序列满足:1、除第一个和最原创 2013-11-04 13:39:39 · 823 阅读 · 0 评论 -
java 栈----java.util.Stack
Stack类简介: Stack 类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类 Vector 进行了扩展(Stack类继承自Vector类) ,允许将向量视为堆栈。它提供了通常的push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的search 方法。(注意:首次创建堆栈时,原创 2013-10-04 22:20:45 · 1095 阅读 · 0 评论 -
java集合类总结
java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、queue四大体系。其中set代表无序、不可重复的集合;list代表有序、可重复的集合。map代表具有映射关系的集合;queue代表队列集合。 java集合类主要由两个接口派生:Collection和Map,是集合框架的根接口。下面是其接口、子接口和实现类的继承树。原创 2013-10-04 23:18:19 · 709 阅读 · 0 评论 -
java 线性表-----数据表示形式(源代码)
1.import java.util.Arrays; 2. 3.public class SequenceList 4.{ 5. private int DEFAULT_SIZE = 16; 6. //保存数组的长度。 7. private int capacity; 8. //定义一个数组用于保存顺序线性表的元素 9. private原创 2013-10-27 10:49:48 · 900 阅读 · 0 评论 -
java 矩阵[多维数组]源代码
1.import java.util.Random; 2. 3.//矩阵类 4.public class Matrix { 5. 6. private int[][] matrix; 7. 8. Random random = new Random(); 9. 10. // 构造方法 11. public Matrix() { 1原创 2013-10-27 11:21:01 · 1208 阅读 · 1 评论 -
java顺序结构顺序 队列---顺序存储(源代码)
1.public class SequenceQueue 2.{ 3. private int DEFAULT_SIZE = 10; 4. //保存数组的长度。 5. private int capacity; 6. //定义一个数组用于保存顺序队列的元素 7. private Object[] elementData; 8. //保原创 2013-10-27 11:42:22 · 794 阅读 · 0 评论 -
java 线性表-------单链表表示形式(源代码)
1.public class LinkList 2.{ 3. //定义一个内部类Node,Node实例代表链表的节点。 4. private class Node 5. { 6. //保存节点的数据 7. private T data; 8. //指向下个节点的引用 9. pr原创 2013-10-27 11:03:23 · 837 阅读 · 0 评论 -
java 顺序结构循环队列(源代码)
1.import java.util.Arrays; 2.public class LoopQueue 3.{ 4. private int DEFAULT_SIZE = 10; 5. //保存数组的长度。 6. private int capacity; 7. //定义一个数组用于保存循环队列的元素 8. private Object[]原创 2013-10-27 11:44:56 · 1270 阅读 · 0 评论 -
java 线性表---------双向链表(源代码)
1.public class DuLinkList 2.{ 3. //定义一个内部类Node,Node实例代表链表的节点。 4. private class Node 5. { 6. //保存节点的数据 7. private T data; 8. //指向上个节点的引用 9.原创 2013-10-27 11:06:21 · 869 阅读 · 0 评论 -
java 算法结构----单链表
相关基础知识补充指针:表示一个数据元素逻辑意义上的存储位置。Java语言用通过对象的引用来表示指针。通过把新创建对象赋值给一个对象引用,即是让该对象引用表示(或指向)了所创建的对象。链式存储结构是基于指针实现的。我们把一个数据元素和一个指针称为一个结点。链式存储结构是用指针把相互直接关联的结点(即直接前驱结点和直接后继结点)链接起来。链式存储结构的特点是数据元素之间的逻辑关系表现在结点原创 2013-11-04 15:57:21 · 890 阅读 · 0 评论 -
Java算法基础----数据结构基本概念
数据和数据元素概念:数据:是人们利用文字、数字符号以及其他规定的符号对现实世界及其活动所做的抽象描述。表示一个事物的一组数据称为一个数据元素;构成数据元素的数据称为该数据元素的数据项。 数据的逻辑结构:数据元素之间的相互联系方式称为数据逻辑结构。按照数据元素之间的相互联系方式,数据的逻辑结构可分为:线性结构、树结构和图结构。线性结构的一般定义:除第一个和最后一个数据元素原创 2013-11-04 10:41:48 · 849 阅读 · 0 评论 -
数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
本文转载至:http://www.cnblogs.com/smyhvae/p/4793339.html一、队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其另一端进行删除操作。队列中允许进行插入操作的一端称为队尾,允许进行删除操转载 2017-04-22 05:29:54 · 822 阅读 · 0 评论