随笔分类 -  7、数据结构&算法

摘要:交换排序 冒泡排序 将最后一个元素与倒数第二个元素对比,如果最后一个元素比倒数第二个小,则交换两个元素的位置,再用倒数第二个元素与倒数第三个元数对比,直到比到第一个元素,这样经过第一趟排序后得到第一个最小元素。如此反复几过N(N=length-1)次后可得到排序结果。 快速排序 快速排序采用了分治法 阅读全文
posted @ 2015-02-13 11:22 江正军 阅读(823) 评论(0) 推荐(1) 编辑
摘要:插入排序 直接插入排序、希尔排序 选择排序 简单选择排序、堆排序 交换排序 冒泡排序、快速排序 归并排序 基数排序 排序基类 插入排序 直接插入排序 一般直接插入排序的时间复杂度为O ( n^2 ) ,但是当数列基本有序时,如果按照有数列顺序排时,时间复杂度将改善到O( n ),另外,因直接插入排序 阅读全文
posted @ 2015-02-13 11:13 江正军 阅读(1011) 评论(0) 推荐(0) 编辑
摘要:组成算术表达式的各元素为=[2, *, 2, +, (, 10, -, 2, ), /, (, 101, -, 50, *, 2, ), *, 3, -, 2, +, 5] 非右括号,直接入栈 srcStack = [2] 非右括号,直接入栈 srcStack = [2, *] 非右括号,直接入栈 阅读全文
posted @ 2015-02-13 11:02 江正军 阅读(1070) 评论(0) 推荐(0) 编辑
摘要:Jdk1.5已有java.util.Queue接口 使用1.5中并发新特性实现循环队列:来源于 API java.util.concurrent.locks.Condition 阅读全文
posted @ 2015-02-13 10:58 江正军 阅读(1156) 评论(0) 推荐(0) 编辑
摘要:1 package stack; 2 3 /** 4 * 栈接口 5 * @author jzj 6 * 7 * @param <E> 8 */ 9 public interface Stack<E> { 10 //入栈 11 public void push(E e); 12 13 //出栈 14 阅读全文
posted @ 2015-02-13 10:52 江正军 阅读(516) 评论(0) 推荐(0) 编辑
摘要:一、数据结构分类 (一)按逻辑结构 (二)按存储结构 顺序(数组)储结构、链式储结构、索引储结构、散列储结构 二、二叉树相关性质 结点的度:一个结点的子树的个数记为该结点的度. 树的度:所有节点中度数最大的结节的度数,叶子节点的度为零。 树的高度:一棵树的最大层次数记为树的高度(或深度)。 有序(无 阅读全文
posted @ 2015-02-13 10:48 江正军 阅读(2456) 评论(0) 推荐(1) 编辑
摘要:树的遍历 (一)树结构实现 (二)利用树本身特点进行递归遍历(属内部遍历) 树的内部遍历方式有两种:前序遍历、后序遍历,注,没有中序遍历。与二叉树的内部遍历方式一样也是采用递归方式实现的。 (三)利用栈与队列对树进行非递归遍历(属外部遍历) 树的两种外部非递归遍历方式:深度优先(即先根)遍历、广度优 阅读全文
posted @ 2015-02-13 10:41 江正军 阅读(2401) 评论(0) 推荐(0) 编辑
摘要:定义 二叉排序树又称二叉查找树或二叉搜索树,它或者是一棵空树,或者是具有如下性质的二叉树:1、若它是左子树非空,则左子树上所有节点的值均小于根节点的值2、若它的右子树非空,则右子树上所有节点的值均大于根节点的值3、左、右子树本身就是两根二叉排序树 查找 因为二叉排序中左子树上所有节点关键字均小于根节 阅读全文
posted @ 2015-02-13 10:35 江正军 阅读(987) 评论(0) 推荐(0) 编辑
摘要:由于程序太长,分成了几部分,后面附上源码。 测试: 阅读全文
posted @ 2015-02-13 10:29 江正军 阅读(1039) 评论(0) 推荐(0) 编辑
摘要:由于平衡二叉树与红黑树都是二叉排序树,又红黑树是对平衡二叉树的一种改进实现,所以它的很多思想算法都来源于排序二叉或平衡二叉树,比如排序二叉树中的添加、删除、查找及查找直接后继节点等,平衡二叉树中的左旋与右旋等都是一样的,所以当看到这些方法时,要多参考以下两节:《二叉排序(搜索)树实现 》与《平衡二叉 阅读全文
posted @ 2015-02-13 10:18 江正军 阅读(629) 评论(0) 推荐(0) 编辑
摘要:哈夫曼树又称最优二叉树,是一种带权路径长最短的树。树的路径长度是从树根到每一个叶子之间的路径长度之和。节点的带树路径长度为从该节点到树根之间的路径长度与该节点权(比如字符在某串中的使用频率)的乘积。 比如有一串字符串如:3334444555556666667777777,它是由3、4、5、6、7这五 阅读全文
posted @ 2015-02-13 08:51 江正军 阅读(2801) 评论(0) 推荐(0) 编辑