数据结构
Crazy-Jobs
将来不迎,当下不杂,既时不恋,专注行动,拥抱变化。。。
展开
-
java实现堆排序
许多应用要用堆,比如,优先队列,即队列的扩充,队列的每个元素增加一个称为优先级的字段,优先队列可以是线性结构的,但要有较高的效率,应把它组织成堆结构。元素入队是,相当于执行堆的插入算法;但在队头每次删除的总是队顶具有最大优先级的元素,因此可以把它称为最大优先级队列。再比如,堆排序是选择排序中的一种典型排序,它也是利用堆来实现的,按非递增的次序排序要使用最小堆,而按非递减的次序排序要使用最大堆。原创 2015-05-28 14:40:04 · 407 阅读 · 0 评论 -
java实现而叉树
/** *java实现二叉树 */ public class BiTree { Scanner scan=new Scanner(System.in); /** * 定义树的节点类,可以单独创建该类 * */ class Node{ private char data; private Node lchild,rchild;原创 2015-04-10 23:13:36 · 437 阅读 · 0 评论 -
稀疏(sparsity)矩阵的行压缩存储
压缩矩阵行或列来存储矩阵的格式是很普遍的,它们不会存储不必要的元素(即空值)。但是它们也不是非常有效的,当在一个矩阵-向量积或预解决的每个简单标量中需要间接寻址。行压缩存储方式会把一个稀疏矩阵行的非零数值放在连续的存储空间。假设我们有一个非对称的稀疏矩阵A我们先定义3个向量:一个浮点类型:val 两个整型:col_ind , row_ptrval向量用于存储矩原创 2015-06-23 21:52:41 · 7022 阅读 · 0 评论 -
数据结构之二叉树详说
二叉树是很有意思的数据结构,它既能像链表那样快速的插入和删除,又能像有序数组那样快速查找。二叉树的遍历可分为前、中、后遍历。遍历又可分为递归和非递归,区别是使用函数栈或自定义的栈,如果不用栈则可以使用线索二叉树来遍历,使用空的右孩子。这里写代码片/** * @author Dylan * @date 2015-11-25 * @see 树的节点 * */public class Node原创 2015-11-26 12:31:05 · 353 阅读 · 0 评论 -
数据结构之堆(java)
记得以前已经实现过堆结构的一些操作,现在看看总有些不和谐,最近在看了看数据结构,觉得还是写的清晰具体一些,也可以方便以后的复习。下面介绍一下堆存在的一些意义。 优先级队列可以用于计算机中的任务调度,在计算机中某些程序和活动需要比其他程序和活动先执行,因此需要给他们分配更高的优先级。 另一个例子是在武器系统中,比如在一个海军巡洋舰系统中。会探测到许多对巡洋舰的威胁,比如来自飞机、导弹原创 2015-11-26 11:03:53 · 390 阅读 · 0 评论 -
各种排序算法的实现及优化
import java.util.Random;public class Sort { private void swap(int[] arr,int i,int j){ int temp=0; temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } /** * 打印数组原创 2017-04-06 16:54:57 · 527 阅读 · 0 评论 -
并查集(Union-Find)算法介绍
本文作者: 伯乐在线 - destiny1020 。未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者。本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而转载 2017-04-20 19:20:08 · 370 阅读 · 0 评论