N个数选出M个最小或最大值算法 有时候需要N个数选出M个最小或最大值算法,但并未要求选出的M个数据需要有序排列,那么这使得算法复杂度可以很低。这里给出一种可行的方法,比常见的一些方法具有更加显…
标签:算法
Dijkstra,Ford,SPF,Floyd,Johnson
8月份看懂,10月份忘光的节奏。。。。下文是8月份打的小笔记放草稿箱,下次有时间在整出来。。。标记下没看过的A* Dijkstra:贪心算法,以点遍历.不适合负权,谁让他贪心到把负权忽略掉了,一般二叉堆实现寻找Min.后…
【蓝桥杯】 搭积木
【问题描述】小明最近喜欢搭数字积木。一共有10块积木,每个积木上有一个数字,0~9。 搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。最后搭成4层的金字塔形,必须用完所有的积木。 下面是两种合…
一个简单排序
适用于小规模的排序 每一次插入都对整个数组排序 private static List<DevilTrialDmgVo> rankList = new ArrayList<DevilTrialDmgVo…
Peterson‘s solution for achieving mutual exclusion
package peterson; public class Peterson { private final int N = 2; //进程数量 private int turn; //现在轮到谁 private bo…
[AtCoder][ARC083]Bichrome Tree 题解
Bichrome Tree 时间限制: 1 Sec 内存限制: 128 MB 原题链接 https://arc083.contest.atcoder.jp/tasks/arc083_c 题目描述 We have a tr…
Palindrome Linked List
Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) time and O(1) …
快速旋转数组(或字符串)
介绍一种时间复杂度为O(n),空间复杂度为O(1)的算法。俗称三步翻转法。 例如想把“123456”旋转为“456123”,第一步,旋转123为321,第二部旋转456为654,整个变为“321654”,第三步对此整体做…
简单的程序诠释C++ STL算法系列之十五:swap
相信大家看到swap这个词都一定不会感到陌生,甚至会有这样想法:这不就是简单的元素交换嘛。的确,swap交换函数是仅次于Hello word这样老得不能老的词,然而,泛…
一天一个小算法--排序之冒泡
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算…
高效率的求X的y次方算法
import junit.framework.TestCase; /** * @author zhengxm * 递归测试 * TOD…
C語言實現插入排序
#include int main() { int i,j,key; int a[7]; for(i=1;i<=6;i++) &n…