算法
Laity000
这个作者很懒,什么都没留下…
展开
-
基于埃拉托色尼质数筛选法求最大公因数(java)
import java.util.Scanner;//埃拉托色尼质数筛选法public class sieveofEratosthenes { static final boolean DEBUG = true; //输入:一个整数n(n大于1) //输出小于等于n的质数的数组L public static int[] getPrime(int n){原创 2017-04-07 22:59:20 · 1875 阅读 · 0 评论 -
01背包 学习笔记
学习背包问题之前首先要了解动态规划的思想动态规划作者:王勐 链接:https://www.zhihu.com/question/23995189/answer/35429905 来源:知乎 著作权归作者所有,转载请联系作者获得授权。动态规划是通过拆分问题(不管问题有没有时间轴的概念,抽象成时间先后关系)状态的定义状态转移方程的定义阶段是状态的容器问题的分类由阶段中状态的转移方式决定的:原创 2016-12-30 17:06:20 · 287 阅读 · 0 评论 -
全排列生成算法笔记
我们知道n的全排列组合共有n!——>何将将这n!全排列的组合打印出来?为次,我们简单起见,假设对元素全排列的集合是从1到n的简单正整数集合{1,2,…,n}。一、递归算法首先递归的思想涉及到减治法的概念。PS:减治法与分治法1、减治法:把一个问题分成一个小问题来解决——>缩小(扩大)问题增量法:自底而上的扩大问题——>迭代减治法:自顶而下的缩小问题——>递归3种主要的变化形式: 减去一个常量原创 2017-05-23 11:49:50 · 1064 阅读 · 0 评论 -
分治法中的合并排序和快速排序
分治法分治法的步骤:分:将问题分解为同一类型、规模更小且最好相同的子问题;治:对这些子问题求解(一般是递归方法);合:将已解决的子问题合并,最终得出“母”问题的解。如果不合并,可以考虑用贪心法或动态规划法。在划分阶段治:快速排序 在合并阶段治:合并排序时间复杂度算法运行时间的递推公式:T(n)=aT(n/b)+f(n)一个规模为n的实例可以划分为b个规模为n/b的实例,其中a个实例是需要求原创 2017-07-25 20:07:52 · 3798 阅读 · 0 评论 -
计数排序
计数排序的时间复杂度比快速排序,合并排序(O(nlongn))都要好O(n),但是是以空间代价换取的,并且在范围较小的整数数中使用。在介绍技术排序之前先补充时空权衡的思想。时空权衡时空权衡的思想就是以空间资源换取时间效率,在算法设计中经常遇到。需要注意的是:并不是所有的情况下,时间和空间这两种资源都是相互竞争的。实际上,他们可以联合起来达到最小化。这种情况需要一个高效的数据结构...原创 2018-03-07 23:18:28 · 766 阅读 · 0 评论 -
最大流问题
问题描述具体的最大流问题定义、术语以及特性,前人已经描述的很详细了:最大流算法之EK(最短路径增广算法)最大流(网络流基础概念+三个算法)我们需要注意以及几个方面:流量守恒约束:这个无需多言。后向边(反向边):尾列在头的前面:1→…→i←j→…→n。引入后向边的目的在于寻找到更多可能的增益路径,而无需回溯后寻找,减少时间复杂度。生成增益路径的方法决定了问题的时间复杂度。...原创 2018-03-26 15:29:27 · 3563 阅读 · 1 评论 -
排序算法总结
插入排序基本思想:将待排序表看做两个部分:无序区、有序区。整个排序过程就是将无序区的元素逐个插入到有序区中(注意插入时如何移动有序区的元素是关键),已构成新的有序区。直接插入排序折半插入排序希尔排序直接插入排序基本思想将待排序表分为左右两个部分,无序区在左边,有序区在右边。-------○■----------○■-------------○■这里的■代表...原创 2018-08-13 22:27:42 · 458 阅读 · 0 评论