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

算法导论读书理解

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

关注
1 已关注
24篇博文
  • 静态查找之折半查找,索引顺序表

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2016-08-16 17:42
    202
  • 贪心算法之活动选择理解

    一.活动选择事例二.例题分析1、定义子问题 采用动态规划的方法: 2、寻找最优子结构: 假设已经找到问题Sij最大兼容活动集Aij,如果Aij中包含Ak(属于某一活动)。则可以将Sij分成两...

    2016-08-17 20:07
    391
  • 动态规划和贪心算法之背包问题理解

    一.背包问题引用书上关于0-1背包和部分背包的阐述: 二.贪心与动态规划区别关于红色矩形部分解释为什么0-1不能使用贪心算法,是因为当你选择一个物品时,整个物品的大小都需要计算,然而背包的的大小...

    2016-08-17 21:55
    1104
  • 图之最小生成树

    一.实际问题最小生成树一般应用在网(带权的图)问题中,实际问题一般比如:   假设要在n个城市间建立通信联络网,则联通n个城市只需要n-1条线路,但是每两个城市间都可以建设路线,而且城市与城市间建设...

    2016-08-28 23:40
    142
  • 图之单源最短路径

    一.实际问题 一般情况下广度优先搜索能够解出单位权值问题,只需要进行广度搜索,最先到达目的地的路径最短。但是对于非单位权值就没有办法,不同于单位权值每天边的代价相等,非单位权值每条边代价不等。这样我...

    2016-08-31 21:14
    139

Windows C/C++/C# 编程
1306357495
FFmpeg
1353621207
经典算法研究
323266858
微软面试100题系列
183177365
Java开发进阶
663046052
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部