算法
Buns.
这个作者很懒,什么都没留下…
展开
-
Kruskal算法解决图的最小生成树问题(java)
最近小哼迷上了《龙门镖局》,从恰克图到武夷山,从张家口到老河口,从迪化到佛山,从蒙自到奉天,迤逦数千里的商道上,或车马,或舟楫,或驼驮,或肩挑,货物往来,钱财递送,皆离不开镖局押运。商号开在哪里,镖局便设在哪里。古代镖局的运镖,就是运货,也就是现代的物流。镖局每到一个新地方开展业务,都需要对运镖途中的绿林好汉进行打点。好说话的打点费就比较低,不好说话的打点费就比较高。现已知城镇地图如下,顶点是城镇编号,边上的值表示这条道路上原创 2020-06-13 02:29:20 · 476 阅读 · 0 评论 -
并查集
快过年了,犯罪分子们也开始为年终奖“奋斗”了,小哼的家乡出现了多次抢劫事件。由于强盗人数过于庞大,作案频繁,警方想查清楚到底有几个犯罪团伙实在是太不容易了,不过警察叔叔还是搜集到了一些线索,需要咱们帮忙分析一下:现在有10个强盗。1号强盗与2号强盗是同伙。3号强盗与4号强盗是同伙。5号强盗与2号强盗是同伙。4号强盗与6号强盗是同伙。2号强盗与6号强盗是同伙。8号强盗与7号强盗是同...原创 2020-05-04 01:58:43 · 159 阅读 · 0 评论 -
堆排序
堆排序时间复杂度最好和最坏情况下都是O(nlogn)import java.util.Scanner;public class HeapSort { static int n;//堆的大小 static int[] h = new int[101];//存放堆的数组 //交互两个元素的值 static void swap(int x, int y) { int t = h[x];...原创 2020-05-03 01:26:43 · 132 阅读 · 0 评论 -
粤澳程序设计赛A题:Alice的秘密(java)
Alice有一些重要信息,这信息只包括大写字母、小写字母和空格。她想要对这些信息进行记录,但是又不想直接记录原始信息。她开始查找资料,其中一种方法是将字母进行变换,设定一个变换位置k,则c=k+m,其中m为原始字符,c为变换结果。比如k=2,则A变为C,Y变为A,z变为b。空格转换为’#’。Alice对k值的设置方法进行了一些改进,由原来固定的k值改进为使用记录的日期变换出k值。具体方法是对日...原创 2020-04-27 19:33:39 · 738 阅读 · 2 评论 -
莫斯方块
题目:小明今年上一年级了,他特别喜欢玩积木,于是非常喜欢他的数学老师斯捷就给了他三种不同的莫斯方块,莫斯方块是非常神奇的方块,它只有1 * 1, 1 * 2 和 2 * 2的正方形组成。如下图:现在斯捷老师希望小明可以用一定数量的这三种莫斯方块尽量多的拼凑出3 * 3的莫斯方块。请聪明的你帮帮小明,不然小明可能会留级了。输入要求每次先输入一个整数T(1 <= T <= 100...原创 2020-04-19 22:45:18 · 457 阅读 · 0 评论 -
二叉树排序
假设通过二叉树对如下10个随机数进行排序67,7,30,73,10,0,78,81,10,74第一个步骤是把数据插入到该二叉树中二叉树存储数据基本逻辑:小、相同的放左边,大的放右边 图片来源:how2j.cn二叉树的遍历分左序,中序,右序左序即: 中间的数遍历后放在左边中序即: 中间的数遍历后放在中间右序即: 中间的数遍历后放在右边public class Node { pu...原创 2020-04-08 01:52:18 · 387 阅读 · 0 评论 -
快速排序
快速排序使用分治法来把一个串分为两个子串。具体算法描述如下:1、从数列中挑出一个元素,称为 “基准”;2、 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区操作;3、 递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。动图演示:图来源:https://www...原创 2020-03-28 20:42:58 · 101 阅读 · 0 评论 -
冒泡排序
public class BubbleSort { public static void main(String[] args) { int[] a = new int[100]; Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine());//输入一个数,表示接下来有n个数 for(i...原创 2020-03-26 20:21:22 · 77 阅读 · 0 评论