
数据结构
ambition_forever
闲谈莫论人非
展开
-
输出无向图2个节点之间的输出路径--DFS
public ArrayList indirectPath0110(Edge edge) {ArrayList path = new ArrayList();Stack stack = new Stack();int start = edge.u;int end = edge.v;visited[start] = 1;stack.push(start);int curr原创 2018-01-13 10:00:53 · 1019 阅读 · 0 评论 -
k-d树查询算法的简要说明:
从root节点开始,DFS搜索直到叶子节点,同时在stack中顺序存储已经访问的节点。如果搜索到叶子节点,当前的叶子节点被设为最近邻节点。然后通过stack回溯:如果当前点的距离比最近邻点距离近,更新最近邻节点.然后检查以最近距离为半径的圆是否和父节点的超平面相交.如果相交,则必须到父节点的另外一侧,用同样的DFS搜索法,开始检查最近邻节点。如果不相交,则继续往上回转载 2017-04-08 20:54:23 · 381 阅读 · 0 评论 -
图的基本操作
求图的简单路径和回路下面是用邻接表存储无向图,然后输出图中指定顶点间的指定长度的简单路径,简单路径就是路径中的顶点不重复,还有一个就是求出图中经过某顶点的回路,都是对图的遍历算法的应用,主要是深度优先的遍历,加上简单的回溯。 下面是代码 //文件"graph.h" 2. 3. #转载 2017-04-08 20:52:23 · 402 阅读 · 0 评论 -
KD树复杂实现
最近邻、k紧邻、范围查询本文采用java对其进行实现,代码中关于Deque双端队列数据结构是本人实现的, package LuoSen.DS.Tree.Distance;/**用具KD树中的临近查询*/public interface KDDistance { /**返回两个数据之间的距离*/ public double HPointToHPointDistance(S a转载 2017-04-08 20:40:52 · 764 阅读 · 1 评论 -
KD树简单实现
public class KdTree { private int n; private Node root; private static final int LEFT = 1; private static final int RIGHT = 2; private static final int BOTTOM = 3; private stat转载 2017-04-08 20:39:00 · 222 阅读 · 0 评论 -
//******************快速排序非递归算法(队列实现)*****************************
const int Maxsize = 100;void quicksortu(int a[],int n){ struct node{ int low,high;}qu[Maxsize]; int i,j,low,high,temp,front=-1,rear=-1; rear++; qu[rear].l原创 2017-04-08 20:31:11 · 870 阅读 · 0 评论 -
顺序统计量
displayOne(arr); System.out.println(left+"===="+right); int n = right;// 有效数组的长度 int parts = this.getInt(left,right);// 分割为三部分 System.out.println("分组:"+parts);转载 2017-04-08 20:28:04 · 286 阅读 · 0 评论 -
快速排序
1、快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。2、快速排序的三个步骤:(1)选择基准:在待排序列中,按照某种方式挑出一个元素,作为 "基准"(pivot)(2)分割操作:以该基准在序列中的实际位置,把序列分成两个转载 2017-04-08 20:27:29 · 209 阅读 · 0 评论 -
内部排序的时间和空间复杂度
内部排序的时间和空间复杂度转载 2017-03-26 11:00:03 · 358 阅读 · 0 评论 -
折半插入排序
package 排序算法;import java.util.Arrays;public class BinaryInsertSort {public static void main(String[] args) {int[] arr = { 3, 2, 1 ,4,5};int low;int high = 0;int mid;int原创 2017-03-21 09:39:53 · 160 阅读 · 0 评论 -
插入排序
package 排序算法;import java.util.Arrays;public class InsertSort {public static void main(String[] args) {int []arr={2,3,1,4,5,6};for(int i=1;iint j=i-1;int temp=arr[i];while(j>=0原创 2017-03-21 08:57:28 · 143 阅读 · 0 评论 -
数组的倒序输出
package day15;public class SequenceList{//产生随机数public static int getRandom(int s,int e){return (int) (Math.random()*(e-s)+s);}public static void reserve(int[] arr){int n=arr.len原创 2017-03-01 15:52:30 · 6331 阅读 · 0 评论 -
链表的逆序打印
package链表逆置;publicinterfaceLinkedListInterface{publicvoidaddNode(intdata);publicvoiddisplay1();publicvoiddisplay2();publicvoidreserve();}package链表逆置;importjava.util.Stack;publicclass原创 2017-03-01 15:30:03 · 312 阅读 · 0 评论 -
递增链表的去重复
package 递增链表去重; public abstract class ListTemple { publicabstract void cutRepeat01(); publicabstract void cutRepeat02(); publiclong getTime1(){原创 2017-03-01 15:25:42 · 265 阅读 · 0 评论 -
Java实现的单链表
package LinkedList;public class Node {private int data;private Node next;// 头节点的初始化public Node() {this.next = null;}// 非头节点的构造public Node(int data,Node next) {this.data =原创 2017-01-04 09:36:37 · 219 阅读 · 0 评论