摘要:package cn.edu.xidian.sselab.string;import java.util.Arrays;import java.util.HashSet;import java.util.Set;import java.util.Stack;/** * * @author zhiyo
阅读全文
摘要:package cn.edu.xidian.sselab.string;/** * * @author zhiyong wang * title: Compare Version Numbers * content: * Compare two version numbers version1 an
阅读全文
摘要://二叉查找树的定义,查询,插入,删除public class BSTree<T extends Comparable<T>>{ private BSTNode<T> mRoot;//定义根节点 //定义节点 private class BSTNode<T extends Comparable<T>
阅读全文
摘要:void Fibonacci(int *f) { f[0] = 1; f[1] = 1; for (int i = 2; i < MAXSIZE; i++) { f[i] = f[i - 1] + f[i - 2]; } } int Fibonacci_Search(int *a, int n, i
阅读全文
摘要:public class Sort { //交换两个数 private void swap(int[] arr, int i,int j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } //普通版冒泡排序,时间复杂度为O(n^2),稳定的
阅读全文
摘要:import java.io.IOException;import java.util.Scanner;//邻接矩阵的无向图的深度与广度优先遍历//邻接矩阵的无向图的Prim算法,求最小生成树public class MatrixUDGS { private char[] mVexs; // 顶点集
阅读全文
摘要:package cn.edu.xidian.sselab.stack;import java.util.Stack;/** * * @author zhiyong wang * title: Min Stack * content: * Design a stack that supports pu
阅读全文
摘要:import java.io.IOException;import java.util.Scanner;//有向图的邻接矩阵的创建public class MatrixDG { private char[] mVexs;//顶点集合 private int[][] mMatrix;//邻接矩阵 //
阅读全文
摘要:import java.io.IOException;import java.util.Scanner;//无向图的邻接表的创建public class ListUDG { //邻接表中表对应的链表的顶点 private class ENode{ int ivex; //该边所指向的顶点的位置 EN
阅读全文
摘要:import java.io.IOException;import java.util.Scanner;//邻接矩阵的无向图的创建public class MatrixUDG { private char[] mVexs;//顶点集合 private int[][] mMatrix;//邻接矩阵 /
阅读全文
摘要:package cn.edu.xidian.sselab.string;/** * * @author zhiyong wang * title: Count and Say * content: * The count-and-say sequence is the sequence of int
阅读全文
摘要:package cn.edu.xidian.sselab.string;/** * * @author zhiyong wang * title: Implement strStr() * content: * Implement strStr(). * * Returns the index of
阅读全文
摘要:package cn.edu.xidian.sselab.string;/** * * @author zhiyong wang * title: Length of Last Word * content: * Given a string s consists of upper/lower-ca
阅读全文
摘要:package cn.edu.xidian.sselab.string;/** * * @author zhiyong wang * title: Longest Common Prefix * content: * *Write a function to find the longest com
阅读全文
摘要:package cn.edu.xidian.sselab.string;import java.util.HashMap;import java.util.Map;/** * * @author zhiyong wang * title: Roman to Integer * content: *
阅读全文
摘要:package cn.edu.xidian.sselab.string;import java.awt.datatransfer.StringSelection;/** * * @author zhiyong wang * title: Valid Palindrome * content: * G
阅读全文
摘要:package cn.edu.xidian.sselab.string;import java.util.Stack;/** * * @author zhiyong wang * title: Valid Parentheses * content: * Given a string contain
阅读全文
摘要:最近在读《深入理解Java虚拟机》,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存? 在网上搜到了一篇博客讲的非常好:http://yueyemaitian.iteye.com/blog/2033046,里面提供的这个类也非常实
阅读全文
摘要:下面是改进版的合并排序,下面是jdk1.7的源码部分 执行步骤如下: (1)如果比较的长度小于INSERTIONSORT_THRESHOLD插入排序的阈值,直接调用传统的插入排序进行比较 (2)当大于插入排序的阈值时,采用合并排序算法,这里有个改进的地方,红色加亮部分,如果已经排好序的,不再进行比较
阅读全文
摘要:for (int i = left, j = i; i < right; j = ++i) { int ai = a[i + 1]; while (ai < a[j]) { a[j + 1] = a[j]; if (j-- == left) { break; } } a[j + 1] = ai; }
阅读全文
摘要:for循环的执行顺序用如下表达式: for(expression1;expression2;expression3) { expression4; } 执行的顺序应该是: 1)第一次循环,即初始化循环。 首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条
阅读全文
摘要:import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class TestArrays { public static void output(int[] arr){ for(int i=0;i
阅读全文
摘要:排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则。 Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。 1.对基本数据类型的数组的
阅读全文
摘要:.线性表链式存储结构:将采用一组地址的任意的存储单元存放线性表中的数据元素。 链表又可分为: 单链表:每个节点只保留一个引用,该引用指向当前节点的下一个节点,没有引用指向头结点,尾节点的next引用为null。 循环链表:一种首尾相连的链表。 双向链表:每个节点有两个引用,一个指向当前节点的上一个节
阅读全文
摘要:线性表的顺序存储结构:是指用一组地址连续的存储单元一次存放线性表的元素。为了使用顺序结构实现线性表,程序通常会采用数组来保存线性中的元素,是一种随机存储的数据结构,适合随机访问。java中ArrayList类是线性表的数组实现。 下面是自己模仿ArrayList实现的最简单的线性表的顺序存储功能 i
阅读全文
摘要:概要 这一章,我们对Iterator和Enumeration进行比较学习。内容包括:第1部分 Iterator和Enumeration区别第2部分 Iterator和Enumeration实例 转载请注明出处:http://www.cnblogs.com/skywang12345/admin/Edi
阅读全文
摘要:概要 这一章,我们对TreeSet进行学习。我们先对TreeSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeSet。内容包括:第1部分 TreeSet介绍第2部分 TreeSet数据结构第3部分 TreeSet源码解析(基于JDK1.6.0_45)第4部分 TreeSet遍历
阅读全文
摘要:概要 这一章,我们对HashSet进行学习。我们先对HashSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashSet。内容包括:第1部分 HashSet介绍第2部分 HashSet数据结构第3部分 HashSet源码解析(基于JDK1.6.0_45)第4部分 HashSet遍历
阅读全文
摘要:前面,我们已经系统的对List和Map进行了 学习。接下来,我们开始可以学习Set。相信经过Map的了解之后,学习Set会容易很多。毕竟,Set的实现类都是基于Map来实现的(HashSet 是通过HashMap实现的,TreeSet是通过TreeMap实现的)。 首先,我们看看Set架构。 (01
阅读全文
摘要:概要 学完了Map的全部内容,我们再回头开开Map的框架图。 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转载:http://www.cnblogs.com/skywang12345/admin/EditPo
阅读全文
摘要:概要 这一章,我们对WeakHashMap进行学习。我们先对WeakHashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用WeakHashMap。第1部分 WeakHashMap介绍第2部分 WeakHashMap数据结构第3部分 WeakHashMap源码解析(基于JDK1.6.
阅读全文
摘要:概要 这一章,我们对TreeMap进行学习。我们先对TreeMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeMap。内容包括:第1部分 TreeMap介绍第2部分 TreeMap数据结构第3部分 TreeMap源码解析(基于JDK1.6.0_45)第4部分 TreeMap遍历
阅读全文
摘要:概要 前一章,我们学习了HashMap。这一章,我们对Hashtable进行学习。我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable。第1部分 Hashtable介绍第2部分 Hashtable数据结构第3部分 Hashtable源码解析(基于JD
阅读全文
摘要:概要 这一章,我们对HashMap进行学习。我们先对HashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashMap。内容包括:第1部分 HashMap介绍第2部分 HashMap数据结构第3部分 HashMap源码解析(基于JDK1.6.0_45) 第3.1部分 HashMa
阅读全文
摘要:概要 前面,我们已经系统的对List进行了学习。接下来,我们先学习Map,然后再学习Set;因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。 首先,我们看看Map架构。 如上图:(01) Map 是映射接口,Map中
阅读全文
摘要:概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack)。 Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、
阅读全文
摘要:概要 学完Vector了之后,接下来我们开始学习Stack。Stack很简单,它继承于Vector。学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码;最后再通过实例来学会使用它。内容包括:第1部分 Stack介绍第2部分 Stack源码解析(基于JDK1.6.0_45)第3部分
阅读全文
摘要:概要 学完ArrayList和LinkedList之后,我们接着学习Vector。学习方式还是和之前一样,先对Vector有个整体认识,然后再学习它的源码;最后再通过实例来学会使用它。第1部分 Vector介绍第2部分 Vector数据结构第3部分 Vector源码解析(基于JDK1.6.0_45)
阅读全文
摘要:package cn.edu.xidian.sselab.hashtable;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.HashMap;import
阅读全文
摘要:public String afterSort(String s){ char[] ss = s.toCharArray(); Arrays.sort(ss); return String.valueOf(ss); }
阅读全文
摘要:概要 前面,我们已经学习了ArrayList,并了解了fail-fast机制。这一章我们接着学习List的实现类——LinkedList。和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码;最后再通过实例来学会使用LinkedList。内容包括:第1
阅读全文
摘要:概要 前面,我们已经学习了ArrayList。接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解。内容包括::1 fail-fast简介2 fail-fast示例3 fail-fast解决办法4 fail-fast原理5 解决fail-fast的原理 转载:ht
阅读全文
摘要:概要 上一章,我们学习了Collection的架 构。这一章开始,我们对Collection的具体实现类进行讲解;首先,讲解List,而List中ArrayList又最为常用。因此,本章我们讲解 ArrayList。先对ArrayList有个整体认识,再学习它的源码,最后再通过例子来学习如何使用它。
阅读全文
摘要:概要 首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set。 List和Set都是接口,它们继承于Collection。List是有序的队列,List中可以有重复的元素;而Set是数学
阅读全文
摘要:Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Colle
阅读全文
摘要:package cn.edu.xidian.sselab.hashtable;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * * @author zhiyong wang * title:
阅读全文
摘要:/** * Java实现KMP算法 * * 思想:每当一趟匹配过程中出现字符比较不等,不需要回溯i指针, * 而是利用已经得到的“部分匹配”的结果将模式向右“滑动”尽可能远 * 的一段距离后,继续进行比较。 * * 时间复杂度O(n+m) * */ public class KMP { //通过计算
阅读全文