算法
fengfengzai0101
这个作者很懒,什么都没留下…
展开
-
链表
在一个寻宝游戏中,你从第一个线索开始寻找,当你找到线索后,而不是得到宝藏,而是拥有下一个线索的地址,一直搜寻线索,直到找到宝藏。链表是类似的结构,是一系列连接的nodes,每个node包含下一个node的地址,每个节点也包含一个数据。链表展现形式:在链表中的第一个节点叫做HEAD,链表的最后一个节点也可以确认,因为它指向下一个节点为NULL。一个节点包含:数据另一个节点的地址节...原创 2019-12-24 10:08:35 · 235 阅读 · 0 评论 -
二分查找数(BST)
介绍二分查找树是一种能够快速维护排序数值集的数据结构。二叉树:因为每个节点最好有两个子节点查找树:可以以O(log(n))的时间来查询值是否存在二分查找树与普通二叉树的区别:左子树的所有节点小于根节点右子树的所有节点大于根节点每个节点的所有子树也是二分查找树,满足上面两个条件上图中,右边的二叉树并不是二分查找树,因为节点3的右子树包含小于节点3的值。二分查找树可以进行两...原创 2019-12-23 15:03:33 · 375 阅读 · 0 评论 -
动态编程中的最优子结构属性
介绍动态编程解决的问题必须包含两个重要属性(至少其一)重复子问题最优子结构属性今天我们讨论最优子结构属性。如果一个问题的最优解决方法可以通过使用它的子问题的最优解决方法的话,那么表示这个问题具有最优子结构属性。例如,最短路径问题就具有最优子结构属性,如果节点x在从节点u到节点v的最短路径上,那么从u到v的最短路径就是从u到x和从x到v的最短路径的结合。但是最长路径问题就不具有最优...原创 2019-12-23 13:43:20 · 182 阅读 · 0 评论 -
动态编程
介绍动态编程在计算机编程中是一种技术,能够有效解决拥有重复子问题的一类问题,这类问题通常需要重复计算子问题的值。例子以斐波那契数列问题为例说明动态编程如果序列是F(1) F(2) F(3)…F(50),遵循F(n) = F(n-1) + F(n-2)F(50) = F(49) + F(48)F(49) = F(48) + F(47)F(48) = F(47) + F(46)......原创 2019-12-23 10:59:44 · 889 阅读 · 0 评论 -
栈
栈概念栈是一个有用的数据结构,它就像摞在一起的盘子。可以放一个新盘子到顶部从顶部移除一个盘子如果放盘子到底部,必须首先移除所有盘子,这种方法叫做Last In First Out,最后放的盘子要首先移除。在编程中的栈在编程中,放一个元素叫做push,移除一个元素叫做pop。尽管2最后放进去,但是首先移除,遵循LIFO原则。尽管可以使用C,C++,Java,Python,C#...原创 2019-12-09 16:03:00 · 211 阅读 · 0 评论 -
选择排序算法
介绍选择排序是从未排序数组中选择最小的元素,放它到未排序数组的前面。原理设置第一个元素为最小元素变量minimum对比minimum与第二个元素,如果第二个元素小于minimum,那么分配第二个元素的值到minimum。对比minimum与第三个元素,如果第三个元素小于minimum,那么分配第三个元素的值到minimum,这个过程直到最后一个元素。当一次迭代之后,minim...原创 2019-11-29 16:17:45 · 266 阅读 · 0 评论 -
冒泡排序
介绍冒泡排序是一种算法,比较相邻元素,如果他们处在错误的位置上,那么交换他们的位置。排序可以进行升序或者降序。原理从第一个元素开始,比较第一个元素和第二个元素,如果第一个元素大于第二个元素,那么交换他们的位置。比较 第二个元素和第三个元素的位置,如果处在错误的位置,那么交换他们。上面的过程直到数组的最后一个元素。相同的过程应用于剩余的迭代中,每次迭代之后,最大的元素将会放在未排序...原创 2019-11-28 10:26:15 · 131 阅读 · 0 评论 -
插入排序
介绍插入排序类似于排序我们手中的卡片。假设第一张卡片已经排序,然后选择一张未排序的卡片,如果未排序的卡片大于排序的卡片,那么放在右边,否则放在左边。同样的方法,将所有未排序的卡片放到正确的位置上。相似的方法应用到插入排序中。插入排序时一种排序算法,放未排序的元素到正确的位置。工作原理有如下需要排序的数组数组中的第一个元素假设已经排序,得到第二个元素的值,存储到名为key的变量中,对...原创 2019-11-27 16:35:31 · 105 阅读 · 0 评论 -
Hana数据压缩:Dictionary Encoding
Hana数据压缩:Dictionary EncodingHana的好处在Hana中使用数据压缩技术,可以增加投资回报率,减少总体成本数据压缩减少磁盘空间,但是Hana可以减少内存使用,带来更好的成本效益,Hana是一个内存平台数据库压缩技术不是新的概念,许多数据库已经在使用,Hana独特之处是在内存中压缩算法,不想市场上的其他压缩系统。Hana大概可以压缩原数据大小到1/3Dict...翻译 2019-11-27 11:12:28 · 902 阅读 · 0 评论 -
Run-Length Encoding(RLE)
Run-Length Encoding(RLE)Run-length encoding是被许多bitmap文件格式支持的数据压缩算法适合压缩任何数据类型,压缩比例受数据内容所影响RLE不能获得高级压缩方法的压缩比例,但是容易实现和执行作为使用复杂压缩算法或者不使用压缩的另一种选择RLE工作方式是减少重复字符的物理尺寸,被编码成两个字节,第一个字节表示字符数量,第二个字节表示本身字符值。...原创 2019-11-26 18:27:36 · 2460 阅读 · 1 评论