java工具
文章平均质量分 87
syyzxq
这个作者很懒,什么都没留下…
展开
-
正则表达式基础
正则表达式定义 正则表达式,Regular Expression,也常被简写为regex,regexp或RE. 通常用一个正则表达式描述一个特征,然后去验证其他字符串是否符合这个特征. 正则表达式也常被称作一个模式(pattern). PS:正则表达式精确的语法可能会因程序语言或工具的不同而有所差异. PPS:本文是学习之...原创 2015-05-19 10:39:02 · 105 阅读 · 0 评论 -
【转】用递归实现目录删除和树形目录展示
递归 所谓递归(Recursion),就是方法调用自身。 对于递归来说,一定有一个出口,让递归结束。这样才能保证不出现死循环。 关于递归,比较简单且典型的例子是计算阶乘、计算斐波那契数列等。 本文是在学习Java的File类时遇到的两个实际问题,一个是文件删除,另一个是将文件目录用树形结构显示(利用缩进),这两个问题都可以用递归解决。 解决删除文件的问题 F...原创 2015-05-19 10:43:22 · 105 阅读 · 0 评论 -
【转】简单选择排序 Selection Sort 和树形选择排序 Tree Selection Sort
选择排序 Selection Sort 选择排序的基本思想是:每一趟在剩余未排序的若干记录中选取关键字最小的(也可以是最大的,本文中均考虑排升序)记录作为有序序列中下一个记录。 如第i趟选择排序就是在n-i+1个记录中选取关键字最小的记录作为有序序列中第i个记录。 这样,整个序列共需要n-1趟排序。 简单选择排序 一趟简单选择排序的操作为:通过n-i次关键字的比较...原创 2015-05-19 10:46:43 · 95 阅读 · 0 评论 -
【转】堆排序 Heap Sort
堆排序是一种选择排序,其时间复杂度为O(nlogn)。 堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆) 情形2:ki >= k2i 且ki >= k2i+1 (最大化堆或大顶堆) 其中i=1,2,…,n/2向下取整; ...原创 2015-05-19 10:49:50 · 94 阅读 · 0 评论 -
【转】快速排序 Quick Sort
快速排序 Quick Sort 快速排序的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 一趟快速排序(或一次划分)的过程如下:首先任意选取一个记录(通常可选第一个记录)作为枢轴(或支点)(pivot),然后按下列原则重新排列其余记录:将所有关键字比它小的记录都安置在它的...原创 2015-05-19 10:51:17 · 155 阅读 · 0 评论 -
【转】二叉树及二叉树的遍历
二叉树(binary tree) 二叉树的定义 二叉树的定义:树的度为2的树。 二叉树的递归定义:二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不相交的左子树和右子树所组成的非空树,而左右子树又都是一棵二叉树。 二叉树的性质 1.第i层上至多有2的i-1次方个结点。 2.深度为h的二叉树至多有2的h次方减1个结点。 3.每一层都满的二叉树称为满二叉树,只...原创 2015-06-08 20:36:31 · 489 阅读 · 0 评论 -
插入排序(II) 希尔排序 Shell Sort
希尔排序 希尔排序(Shell’s Sort)又称“缩小增量排序”(Diminishing Increment Sort),它也是一种属于插入排序类的方法,但在时间效率上比直接插入排序方法有较大的改进。 从对直接插入排序的分析得知,其算法时间复杂度为O(n2),但是,若待排记录序列为“正序”时,其时间复杂度可提高至O(n),由此可设想,若待排记录序列按关键字“基本有序”,直接插...原创 2015-06-08 20:37:10 · 120 阅读 · 0 评论 -
【转】插入排序(I)Insert Sort
插入排序(I) 直接插入排序 直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好的有序的表中,从而得到一个新的、记录数增1的有序表。 当前元素的前面元素均为有序,要插入时,从当前元素的左边开始往前找(从后往前找),比当前元素大的元素均往右移一个位置,最后把当前元素放在它应该呆的位置就行了。 直接插入排序过程实例 比如对 21、25、49、25、16、...原创 2015-06-08 20:38:00 · 183 阅读 · 0 评论