- 博客(10)
- 资源 (4)
- 收藏
- 关注
原创 测试图中是否有环
一个图中是否有环跟利用深度优先搜索中是否出现回边是同一个问题//determine if the graph is acyclic public static boolean acyclic(DiGraphg) { //use for calls to dfsVisit() LinkedList dfsList=new LinkedList(); Iterator grap
2013-03-24 12:32:05 826
原创 广度优先搜索与深度优先搜索
广度优先搜索的方式模仿二叉树的层序遍历,利用一个队列存储adjacency vertex,利用white,gray and black 标示节点的三种状态。white表示未访问,gray表示已发现但为访问,也就是处于队列节点的状态,black表示已访问,也就是从队列中弹出的节点。/*图算法*/ //breath first search public static LinkedList b
2013-03-24 10:39:47 833
原创 图的设计与实现
package deno.Graphics;import java.awt.Color;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.ArrayList;import java.util.Collection;impor
2013-03-22 16:23:22 754
原创 Hash(code and explaination)
package practice;import java.util.Collection;import java.util.ConcurrentModificationException;import java.util.Iterator;import java.util.NoSuchElementException;public class Hash implements Coll
2013-03-17 11:52:02 709
原创 基数排序
基数排序是一种线性排序,分为distribute(分配)和collect(回收)两个阶段。算法需要:长度为10的队列。每一轮分配,按照radix(基数)分别进入相应队列例如待排序列为14,22,41,32,25,65,57第一趟分配按照个位入队列则每个队列为:0号:空1号:412号:22,,323号:空4号:145号:25,656号:空7号:57
2013-03-15 10:32:33 809
原创 堆的构建以及利用堆排序
堆其实就是一个基于数组的二叉树,由于本身是数组,因此相比于普通二叉树,它可以通过简单的数值计算就能够访问节点。堆有最大堆和最小堆之分,最大堆中每个父节点值大于或等于子节点的值,最小堆则相反。对于n元素数值而言,它的每个节点arr[i]的子节点点索引分别问2*i+1,2×i+2,根节点为0以最大堆为例,向一个堆中添加节点时,需要将父节点路径上的节点向下移动一层,知道这个节点位于正确的位置
2013-03-13 20:47:32 739
原创 搜索二叉树的应用
一个简单的在线租赁程序,利用文本文件作为其后台数据库。搜索树充当临时数据库,借助搜索树的高效性,租借功能直接对数进行操作,最后在关闭窗口时再迭代的将树中每个节点存储的内容复制到文本文件里。界面:左侧为仍然拥有的东西以及每个东西的数量,右侧是已经借出的东西,这些东西从上至下按字母顺序排列,Tool文本框输入你想要借的东西,底端两个按钮分别负责借和还,底端右侧文本框用来
2013-03-10 14:50:51 1188
原创 二叉搜索树
package tree;import java.util.Collection;import java.util.Iterator;public class STree implements Collection{ private STNode root; private int treeSize; private int modCount; public STree()
2013-03-08 12:38:28 574
原创 求K个最小的数
在若干个数中求出k个最小的数,利用快速排序找基准值的原理定位k的位置所在时间复杂度O(n)public static void findK(int[]arr,int k,int first,int last) { int index=pivotIndex(arr,first,last); if(index==k) return; else if(ind
2013-03-06 17:44:48 479
原创 二分法(数组形式)
public class BinarySearch{ public static void main(String[]args) { int arr[]=new int[]{1,2,3,4,5,6,7,8,9,10}; System.out.println(binSearch(arr,10)); } public static int binSearch(int[
2013-03-06 15:20:36 565
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人