
数据结构和算法
文章平均质量分 54
Nipuream
来杯冻柠茶,一起来聊聊技术,怎么样?
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
拓扑排序 解题思路
序所谓拓扑排序是对有向无圈图顶点的一种排序,如果存在一条从v到w的路径指向,则在排序中w就出现在v的后面,典型的例子就是大学的选课问题。一般的有两种解题思路,一种是用非递归的方式来实现、另一种则是用深度访问搜索递归实现。 用非递归的方式实现:List<Vertex> sortList = new ArrayList<>();Queue<Vertex> q = new Queue<Verte原创 2016-08-21 14:27:29 · 1168 阅读 · 0 评论 -
最短距离算法
无权最短路径无权图可以把每条路径的权看成是1,求解起来非常简单。这种图的求法一般用广度优先搜索,按层来处理顶点,和二叉树的层序遍历非常类似,如下:<T extends Comparable<? Super T>> void printTree(BinaryNode<T> t){LinkedList<T> list = new LinkedList<>();List.offer(t);while(原创 2016-08-21 20:48:06 · 9132 阅读 · 0 评论 -
最小生成树
Prim算法Prim算法是让从单个顶点出发,使其逐步成长,每次成长都是不在树上的边的值中最小者,而找出一个新的顶点加入这个树中。和有向图的Dijkstra算法处理方式非常相似,唯一的区别就是更新的地方。ArrayList<Edge> Prim(Vertex s){List<Edge> minTree = new ArrayList<>();for each Vertex v{ v.dist =原创 2016-08-27 17:21:13 · 962 阅读 · 0 评论 -
内部排序 Java实现
比较排序冒泡排序冒泡排序是比较排序中最基础的算法,通过和旁边的元素进行比较上浮,从而进行排序。 public static void bubbleSort(int[] a){ for(int i=0;i<a.length;i++) { for(int j=a.length-1;j>i;j--) {原创 2016-08-08 21:54:44 · 1044 阅读 · 0 评论