博客专栏  >  编程语言   >  算法导论读书理解

算法导论读书理解

阅读数据结构和算法导论记下自己的理解

关注
1 已关注
28篇博文
  • 按字典序算法全排列

    一、简介原文按照字典里的排序方法: 先比较第一个字符 i 和 b b<i b是第2个 ,i是第9个 2 < 9 于是 baray < ilove 如果第一位相同,就比较第二位, 例如: abcdd<a...

    2017-08-14 20:31
    33
  • 并查集

    一、算法解释用于解决一些有N个元素的集合应用问题。 1、将每个元素初始化为自身单独成为一个集合。用p[i]的值表示该元素所在集合。 2、现在我们想将3和1元素连线并成一个集合。可以将p[3] ...

    2017-08-17 15:38
    29
  • BFS广度优先搜索 DFS深度优先搜索 回溯算法

    一、BFS广度优先搜索 CCF 最优灌溉二、DFS深度优先搜索 深度搜索:CCF 送货 深度搜索:CCF 网络延时 发现回溯算法基于深度优先搜索,试探性假设某一路...

    2017-08-18 19:08
    49
  • 图之强连通、强连通图、强连通分量 Tarjan算法

    一、解释在有向图G中,如果两个顶点间至少存在一条互相可达路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连...

    2017-08-20 18:27
    54
  • 静态查找之折半查找,索引顺序表

    一、顺序查找  对于乱序表,从表的一端逐个比较,如果相等则查找成功,如果到底还没找到,则查找不成功。二、折半查找  基于有序表,由于表是从大到小或者从小到大排序。所以我们可以取表中间一个记录,判断查找...

    2016-09-28 14:21
    477
  • 静态查找静态树表

    一、基本思想静态树表为的是解决查找概率不等的记录。一般情况下,我们都是默认各个记录等概率查找的,但是有些记录可能不是等概率的。我们可能会首先搜索一些概率大的记录。 二、构造过程次优查找树和最优查找树...

    2016-09-29 13:34
    879
  • 内部排序之基数排序(RadixSort)

    一、基本思想 基数排序借助的多关键字进行排序的思想对单逻辑关键字进行排序。 二、链式基数排序  如果我们对0至999之间的数据进行排序,首先它的关键逻辑关键字就是关键的字的大小。如果采用插...

    2016-09-27 12:20
    568
  • 内部排序之归并排序(MergingSort)

    一、基本思想 将两个已经排序好的有序列表合并成一个新的有序表。根据分治策略,我们会发现从上往下,就是将一个乱序表一直递归划分,划分到最后就只剩一个元素,显然有序。 二、示意图 从底下往上看,整个...

    2016-09-27 11:14
    554
  • 选择排序之树形选择排序(TreeSelectionSort)

    一、简单选择排序思想 很显然,每次我们比较后就把数据进行交换,取出了关键字最小的记录,但是对于与最小关键字记录交换的数据我们直接扔进了乱序中,没有利用这次比较。导致每次选择都要重新比较。 二、树形...

    2016-09-26 23:56
    855
  • 选择排序之堆排序(HeapSort)

    一、堆定义  (二叉)堆是一个数组,类似于完全二叉树。分为两种形式: 二、维持堆性质  堆排序使用的是最大堆,如果堆中某个结点不满足最大堆性质,这时就需要用算法调整节点位置,使得满足最大堆性质。...

    2016-09-26 23:15
    193
  • 分治策略之最大子数组

    一、基本思想  分治策略是将父问题差分成的多个子问题,然后递归的方式解决子问题。整个思想和动态规划类似,不过分治策略不要求最优解问题,而只是把父问题分解成子问题。步骤: 分解(Divide) 先将...

    2016-09-26 14:10
    614
  • 内部排序之插入排序(InsertSort)

    一、基本思想 直接插入排序(最坏时间O(n*n))是将一个数据插入到已经排序好的列表中。假设列表已经从小到大排列好,此时又有个新数据插入,可以从列表尾部开始向前遍历,与新数据比较。如果新数据比当前...

    2016-09-25 15:48
    619
  • 字符串之KMP算法

    一、介绍  KMP算法全称Knuth-Morris-Pratt算法,是一种字符串匹配算法,常规字符匹配是每次移动一位,复杂度O(mn);而KMP算法复杂度O(m+n)。二、算法原理  KMP算法利用的...

    2016-09-10 15:46
    544
  • 树之性质

    总边数+1=总结点 在一棵度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点 有2个,那么,该树有 __个叶结点。设度为0的结点个数为n0,度为1的结点个数为n1,度为2的结点个数为n...

    2016-09-06 18:04
    143
  • 文件之索引文件

    索引文件指的是为逻辑记录和物理记录之间建立一个一一对应关系表–索引表。 在检索过程中,分两步,首先查找索引表,如果存在该记录,则根据索引项的指示读取外存。 如果索引表很大,可以再为索引表建立查...

    2016-09-07 16:54
    203
  • 内部排序之快速排序(QuickSort)

    一、基本思想快速排序法是对冒泡法的改进。基本思想为:从列表中任选一个记录作为枢纽。然后从列表的开始和结束位置向中间遍历,把记录的关键字与枢纽进行比较。小于枢纽的记录放在低位,大于枢纽的记录放在高位。从...

    2016-09-07 21:48
    181
  • 动态查找之哈希(hash)表

    一、介绍  与其他建立在“比较”基础上的查找算法不同,哈希表是通过哈希函数将储存位置与值得关键字建立一一对应关系,从而一般一次就能够得到值。但是有时对于不同关键字哈希后得到的地址会是相同的,称这种现象...

    2016-09-08 15:37
    593
  • 树之二叉树遍历先序,中序,后序

    一、介绍二、遍历理解首先需明白:先序,中序,后序中的先,中,后指的是根结点的遍历顺序。 以中序遍历为例(数据读取顺序:先左树,再根结点,再右树): 1、先找到根结点,遍历了但是不能读取数据,此时树...

    2016-09-05 19:46
    190
  • 动态规划之矩阵链乘法理解

    一.矩阵链事例 矩阵链问题主要涉及的时在多个矩阵相乘,如何通过相乘的顺序来减少程序运行。二.例题分析这次分析过程按照动态规划的三个基本条件来逐步解答:1、寻找最优子结构:假设我们已经找到父矩阵链最优...

    2016-08-16 17:37
    554
  • 动态规划之装配线调度理解

    一.装配线事例二.例题分析动态规划适用于子问题不是独立情况, 各个子问题包含公共子问题。通常用于最优化问题,我们需要找出一个最优解。上述装配线问题考虑的是当一个底盘进入装配线后该选择使用哪个装配线上的...

    2016-08-16 17:42
    246

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部