博客专栏  >  编程语言   >  数据结构与算法

数据结构与算法

学习数据结构与算法,共同进步!!!

关注
0 已关注
45篇博文
  • 图论算法(五)--求解割点、割边(JAVA)

    割点:对于一个连通图来说,如果删除某个点之后图不再连通,这个点就称为割点 割点算法 时间复杂度:O(N+M) 但是下面给出的算法时间复杂度为O(N^2),这是因为下面的存储结构都是邻接矩阵,这样...

    2018-01-12 22:45
    125
  • 图论算法(六)-- 二分图的最大分配问题(JAVA)

    二分图:又称二部图,如果一个图的所有顶点可以被分为X和Y两个集合,并且所有边的两个顶点恰好一个属于一个集合X,另一个属于集合Y,即每个集合内的顶点没有边相连,那么这个图就是二分图。 二分图的最大分配...

    2018-01-12 23:00
    69
  • 斐波那契数列(二)--矩阵优化算法

    之前写了一篇从斐波那契数列分析递归与动态规划(JAVA)来优化斐波那契数列,这样可以使算法的时间复杂度从O(n^2)变到O(n),这是使用递归公式f(n)=f(n-1)+f(n-2)求斐波那契数列的最...

    2018-01-18 12:23
    115
  • 从背包问题优化详解动态规划思想

    动态规划: 所有的数据结构与算法的理解必须建立在题目的练习上,否则看多少理论都没有实际用处!!! 所以下面这些理论文字看不懂通通没关系,跟随下面的背包问题还会跟深入的理解。 ...

    2018-01-23 19:10
    84
  • 深入浅出讲算法思想--蛮力法思想分析及应用

    蛮力法(brute force method,也称为穷举法或枚举法)是一种简单直接地解决问题的方法,常常直接基于问题的描述,所以,蛮力法也是最容易应用的方法。虽然,用蛮力法设计的算法时间特性往往也是最...

    2018-02-01 20:20
    255
  • 减治法解决八枚硬币问题/假币问题(JAVA)----二分,三分,不知轻重的情况

    八枚硬币问题 在八枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,设计一个高效的算法来...

    2018-02-02 22:33
    594
  • 减治法在查找算法中的应用(JAVA)--折半查找

    减治法在查找算法中的应用 折半查找:(时间复杂度O(log以2为底n的对数)) 对于有序数组的查找来说,折半查找是一种非常高效的算法,其基本原理为:比较查找键k和数组中间元素a[m],如果相等,算...

    2018-02-03 17:07
    77
  • 减治法解决约瑟夫斯问题(JAVA)

    减治法在查找算法中的应用 问题背景:据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也...

    2018-02-03 17:19
    76
  • 减治法在查找算法中的应用(JAVA)--快速查找

    减治法在查找算法中的应用 快速查找:选择问题是求一个n个数列表的第k个最小元素的问题,这个数k被称为顺序统计量。对于k=1或k=n来说,这并没有什么意义,我们通常会要找出这样的元素:该元素比列表...

    2018-02-03 17:24
    116
  • 减治法在查找算法中的应用(JAVA)--二叉查找树的查找、插入、删除

    减治法在查找算法中的应用 二叉查找树的查找与插入: 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根节点的值; (2...

    2018-02-03 17:29
    59
  • 减治法在排序算法中的应用(JAVA)--插入排序

    一、减治法在排序算法中的应用 插入排序:时间复杂度O(n^2),虽然和选择、冒泡在最坏的情况下时间复杂度相同,但是插排平均性能在比自身的最差性能快一倍,所以相比选择、冒泡来说,插排要领先于二者。 ...

    2018-02-03 17:33
    79
  • 减治法在求解拓扑排序问题中的应用(JAVA)--有向无环图

    减治法在求解拓扑排序问题中的应用 拓扑排序:对于一个有向无环图来说,如果我们能够按照次序列出顶点,使得对于每条边来说,边的起始顶点总是排在边的结束顶点之前,那么这个过程就称为拓扑排序,拓扑排序有...

    2018-02-03 17:48
    95
  • 减治法在生成全排列中的应用(JAVA)--回溯、Johnson-Trotter算法、自字典序

    减治法在生成组合对象问题中的应用 在深入浅出讲算法思想--蛮力法思想分析及应用这篇文章的最优解问题中中已经初步讲解了这类应用,下面我们将使用减治法再次思考这类问题。 1、全排列问题,在数学中求...

    2018-02-03 17:53
    91
  • 减治法在生成子集问题中的应用(JAVA)--递归、二进制反射格雷码

    减治法在生成组合对象问题中的应用 生成子集问题:经典的背包问题就是求解一个最优子集的问题,这里我们来讨论一个更简单的问题。对于任意一个集合来说,它都存在2^n个子集(一个集合所有的子集集合称为幂...

    2018-02-03 17:57
    53
  • 减治法解决俄式乘法问题(JAVA)

    以上是在《算法设计与分析基础》一书中给出的定义。 这种算法只包括折半、加倍、相加这几个操作,在计算时,不需要用九九乘法表 。 同时,这个方法每次都会讲计算的规模减少,运用了减治的思想  publ...

    2018-02-03 19:25
    107
  • 减治法解决尼姆(Nim)游戏/拈游戏问题(JAVA)

    尼姆游戏是一种两个人玩的回合制数学策略游戏。游戏者轮流从一堆棋子(一共有好几堆,一次只能从其中一堆拿。)(或者任何道具)中取走一个或者多个,最后不能再取的就是输家。当指定相应数量时,一堆这样的棋子称作...

    2018-02-03 21:38
    264
  • 蛮力法在排序算法中的应用(JAVA)--选择排序、冒泡排序

    蛮力法在排序算法中的应用 对于一个排序问题,我们能想到的最简单的排序方法就是选择和冒泡 1、选择排序:时间复杂度O(n^2) public class Main { public s...

    2018-02-04 10:27
    76
  • 蛮力法在查找算法中的应用(JAVA)--顺序查找

    蛮力法在查找算法中的应用 对于查找算法来说,最简单的一个思路就是逐个匹配,直到找到目标元素 顺序查找: public class Main { public static void ...

    2018-02-04 10:27
    58
  • 蛮力法在字符串匹配问题中的应用(JAVA)--朴素模式匹配算法

    蛮力法在字符串匹配问题中的应用字符串匹配问题通常是给定一个n个字符组成的串(称为文本),一个m(m<=n)个字符的串(称为模式),从文本中寻找匹配模式的子串。显然我们需要逐个匹配,这是蛮...

    2018-02-04 10:28
    64
  • 蛮力法在求解“最近对”问题中的应用(JAVA)

    最近对问题是在计算几何问题中最简单的,是指在一个包含n个点的集合中,找到距离最近的两个点,我们这里只研究二维空间中的版本,高维计算基本类似,区别只在于计算两点之间距离的公式略有不同,下面是标准的欧几里...

    2018-02-04 10:31
    150
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部