
数据结构\算法
shuizhaosi888
这个作者很懒,什么都没留下…
展开
-
java 二分查找树
查询二叉树是平衡树->红黑树的基础,红黑树是TreeMap和TreeSet实现的基础。深度:根到任意节点的唯一路径长,根节点的深度是零高度:从节点到一片树叶的最长路径长,树叶的高度是零二叉树:每个节点都不能有多余两个的儿子public class BinarySearchTree<T extends Comparable<? super T>>...原创 2015-03-28 18:53:43 · 336 阅读 · 0 评论 -
java实现归并排序
归并排序 归并排序,指的是将两个已经排序的序列合并成一个序列的操作。 归并操作的过程如下: 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初位置分别为两个已经排序序列的起始位置 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 重复步骤3直到某一指针到达序...2015-01-21 20:53:15 · 160 阅读 · 0 评论 -
java实现交换排序(冒泡排序、快速排序)
冒泡排序 由于它的简洁,冒泡排序通常被用来对于程序设计入门的学生介绍算法的概念。 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直...2015-01-21 08:28:23 · 239 阅读 · 0 评论 -
java实现选择排序(直接选择排序、堆排序)
直接选择排序 选择排序的原理:将数组分为有序区,无序区。初始有序区元素为0,整个数组为无序区。每次遍历从无序区中选出一个最小(或最大)的元素,放在有序区的最后,每一次遍历排序过程都是有序区元素个数增加,无序区元素个数减少的过程,直到无序区元素个数位0。 直接选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素...2015-01-20 08:29:33 · 236 阅读 · 0 评论 -
java实现插入排序(直接插入、二分查找插入、希尔排序)
直接插入排序 直接插入排序的原理:先将原序列分为有序区和无序区,然后再经过比较和后移操作将无序区元素插入到有序区中, 下面表格中,排序之前取第一个元素为有序区10,无序区9到4,带颜色为有序区。 待排序数组10987654第一次排序91087654第二次...2015-01-19 08:21:07 · 185 阅读 · 0 评论 -
java 二分查找
需求:在排好顺序的一串数字中,找到数字T 一般解法:从左到右扫描数据,其运行花费线性时间O(N)。然而这个算法并没有用到该表已经排序的事实。 /** * * @param array * 顺序数组 * @param t * 要查找对象 * @return */ public static &...2014-12-20 09:37:02 · 163 阅读 · 0 评论