
算法与数据结构
华山派副掌门人
专注于软件
展开
-
计蒜客-灌溉(java-prim算法)
到了旱季农业生产的灌溉就成了一个大问题。为了保证灌溉的顺利,某县政府决定投资为各个村之间建立灌溉管道。输入第1行包括一个整数N,表示某县的村庄的数量。(3≤N≤100),第2行-结尾为一个N×N的矩阵,表示每个村庄之间的距离。虽然在理论上,他们是N行,每行由N个用空格分隔的数组成,实际上,他们限制在80个字符,因此,某些行会紧接着另一些行。当然,对角线将会是0,因为不会有线路从第i个村到它本身(任何原创 2017-12-05 18:53:24 · 514 阅读 · 0 评论 -
判断一个数组是否有重复元素
数组长度为n,数的范围{0,n-1};数组元素随机排放,可能有重复值,怎样判断是否有重复元素?下面说明一下思路,这个问题各种办法都可以解决,但是算法的复杂度和性能上却各不相同,最笨的办法就是逐个比较。...原创 2018-06-25 20:29:52 · 8801 阅读 · 0 评论 -
用两个队列实现栈
核心思想用两个队列来实现栈,因为栈是后进先出的,而队列是先进先出的,所以必须保持有一至少有个空队列,每次入栈的时候都要将入栈元素放到非空队列队尾,当然第一次都是空队列,随便选一个入队进行,出栈时,将非空队列里面的元素依次出队然后入队到另一个空队列中,只剩下一个元素作为出栈元素,这样就满足了栈后进先出的特点。下面附上完整java代码import java.util.LinkedList;...原创 2018-06-25 00:06:45 · 174 阅读 · 0 评论 -
两个栈实现一个队列
Java用两个栈实现队列import java.util.Stack;import org.junit.Test;public class QueueByTwoStack { private Stack<Integer> stack1=new Stack<Integer>(); private Stack<Integer&原创 2018-06-24 22:22:41 · 166 阅读 · 0 评论 -
改进的快速排序算法(快排与折半插入排序混合使用)
改进的快速排序算法思想上一篇博客写了快排的实现代码,也分析了快排使用递归可能出现栈溢出和子序列在长度很短的情况下可以采用其他简单的排序算法来排序以提高快排效率。这种思想就是:当待排序的子序列规模小于预先确定的L时,程序调用折半插入排序或者直接插入排序或其他简单的排序算法进行排序,并结束递归,这样既提高了快排的效率,又可以有效控制栈溢出StackOverflowError。下面附上Java代码。...原创 2018-06-23 17:34:51 · 1153 阅读 · 0 评论 -
Java快速排序
import java.util.Scanner;import org.junit.Test;public class Main5 { /** * 快排两头逼近一趟划分过程 * @param a 子序列 * @param low 子序列左边界下标 * @param high 子序列右边界下标 * @return 基准元素下标 ...原创 2018-06-23 17:01:28 · 219 阅读 · 0 评论 -
Java冒泡排序
import java.util.Scanner;import org.junit.Test;public class Main4 { /** * 简单冒泡排序 * @param a 待排序数组 */ public static void bubbleSort(int[] a) { int n=a.length;//数组长度 ...原创 2018-06-23 15:00:03 · 158 阅读 · 0 评论 -
Java希尔排序
希尔排序的基本思想设带排序元素有n个元素,首先取一个整数d原创 2018-06-23 11:50:46 · 202 阅读 · 0 评论 -
Java折半插入排序
折半插入排序是对直接插入排序的改进算法,又称为二分法插入排序,折半搜索要比顺序搜索快,所以就平均性能来说要比直接插入排序快,下面附上代码import java.util.Scanner;import org.junit.Test;public class Main2 { /** * 折半插入排序 * @param a 待排序数组 * @return...原创 2018-06-23 10:10:42 · 272 阅读 · 0 评论 -
数据结构直接插入排序
import java.util.Scanner;import org.junit.Test;public class Main1 { /** * 直接插入排序 * @param a 待排序数据 * @return 排好序的数据(从小到大) */ public static int [] insertSort(int [] a){ ...原创 2018-06-23 01:20:58 · 324 阅读 · 0 评论 -
最小生成树之Prim算法-顶点的归并
import java.util.ArrayList;import java.util.Scanner;/*样例输入4 41 2 12 3 42 4 23 4 3样例输出6样例输入6 91 2 12 4 114 6 36 5 45 3 133 1 22 3 63 4 94 5 7样例输出19*/public class Main{ pub...原创 2017-12-05 19:07:25 · 642 阅读 · 0 评论