03 2022 档案

摘要:哈夫曼编码(Huffman Coding)是一种可变长的前缀码,可以有效地压缩数据:通常可以节省20%~90%的空间。哈夫曼设计了一个贪心算法来构造最优前缀码,被称为哈夫曼编码。 前缀码,没有任何码字是其他码字的前缀。 思路 首先,获取字符与频率的关系。 其次,构建哈夫曼树。 最后,根据0=转向左孩 阅读全文
posted @ 2022-03-31 19:50 vicky2021 阅读(416) 评论(0) 推荐(0) 编辑
摘要:问题 活动选择问题是一个调度竞争共享资源的多个活动的问题。 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源(如,演讲会场),而在同一时间内只有一个活动能使用这一资源。活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合。 每个活动i都有一个要求使用该资源的开始时间s 阅读全文
posted @ 2022-03-27 18:00 vicky2021 阅读(405) 评论(0) 推荐(0) 编辑
摘要:贪心算法总是作出在当前看来最好的选择 —— 也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。贪心算法得到的最终结果也可能是整体最优的,例如,单源最短路经问题(Dijskstra算法),最小生成树问题等。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生 阅读全文
posted @ 2022-03-26 19:51 vicky2021 阅读(225) 评论(0) 推荐(0) 编辑
摘要:问题 最优二叉搜索树(Optimal Binary Search Tree,Optimal BST)问题,形式化定义:给定一个n个不同关键字的已排序的序列K=<k1, k2, ..., kn>(k1<k2<...<kn),用这些关键字构造一棵二叉搜索树 —— 对每个关键字ki,都有一个概率pi表示其 阅读全文
posted @ 2022-03-26 17:43 vicky2021 阅读(2013) 评论(0) 推荐(0) 编辑
摘要:二叉搜索树(Binary Search Tree,BST),又称为二叉搜索树,二叉排序树,是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 基本方法有: 查找: 阅读全文
posted @ 2022-03-26 15:49 vicky2021 阅读(380) 评论(0) 推荐(0) 编辑
摘要:问题 最长公共子序列问题(longest-common-subsequnence problem, LCS),给定两个序列X=<x1, x2, ..., xm>, Y=<y1, y2, ..., yn>,求X和Y长度最长的公共子序列。 例如,<B, C, B, A>就是X=<A, B, C, B, 阅读全文
posted @ 2022-03-25 22:06 vicky2021 阅读(229) 评论(0) 推荐(0) 编辑
摘要:问题 矩阵链乘法问题(matrix-chain multiplication problem)可描述如下:给定n个矩阵的链<A1, A2, ..., An>,矩阵Ai的规模为pi-1×pi (1<=i<=n),求完全括号化方案,使得计算乘积 A1A2...An所需标量乘法次数最少 —— 完全括号化( 阅读全文
posted @ 2022-03-24 19:36 vicky2021 阅读(623) 评论(0) 推荐(0) 编辑
摘要:问题 Serling公司购买长钢条,将其切割为短钢条出售。切割工序本身没有成本支出。公司管理层希望知道最佳的切割方案。假定我们知道Serling公司出售一段长为i英寸的钢条的价格为pi(i=1,2,…,单位为美元)。钢条的长度均为整英寸。图15-1给出了一个价格表的样例。 钢条切割问题是这样的:给定 阅读全文
posted @ 2022-03-23 20:59 vicky2021 阅读(731) 评论(2) 推荐(0) 编辑
摘要:队列,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。对于队列的修改要按照先进先出的原则进行,因此,队列又被称为先进先出(FIFO)的线性表。 链队,队列的链式存储。 基本方法有: 初始化:创建一个空的队列。 判断队列是否为空:如果队列为空,则返回”真“,否则返回”假“。 入队:将元素 阅读全文
posted @ 2022-03-21 21:49 vicky2021 阅读(84) 评论(0) 推荐(0) 编辑
摘要:队列,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。对于队列的修改要按照先进先出的原则进行,因此,队列又被称为先进先出(FIFO)的线性表。 顺序队,队列的顺序结构。 基本方法有: 初始化:创建一个空的队列。 判断队列是否为空:如果队列为空,则返回”真“,否则返回”假“。 入队:将元 阅读全文
posted @ 2022-03-21 21:47 vicky2021 阅读(84) 评论(0) 推荐(0) 编辑
摘要:栈,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。对于栈的修改要按照先进后出的原则进行,因此,栈又被称为后进先出(LIFO)的线性表。 链栈,用链表作为存储结构的栈 —— 链表的头指针就是栈顶指针。 基本方法有: 初始化:创建一个空栈。 判断栈是否为空:如果栈为空,返回“真”,否则返 阅读全文
posted @ 2022-03-21 21:25 vicky2021 阅读(77) 评论(0) 推荐(0) 编辑
摘要:栈,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。对于栈的修改要按照先进后出的原则进行,因此,栈又被称为后进先出(LIFO)的线性表。 顺序栈,是用一组地址连续的存储单元存储自栈顶到栈底的数据元素。 基本方法有: 初始化:创建一个空栈。 判断栈是否为空:如果栈为空,返回“真”,否则返 阅读全文
posted @ 2022-03-21 21:22 vicky2021 阅读(90) 评论(0) 推荐(0) 编辑
摘要:动态规划与分治法相似,都是通过组合子问题的解来求解原问题(Programming在这里指的是一种表格法,并非是编写计算机程序),但是又有所不同: 分治法将问题分解为互不相交的子问题,递归求解子问题,再将它们的解组合起来,求出原问题的解。 动态规划适合求解最优化问题(optimization prob 阅读全文
posted @ 2022-03-20 21:31 vicky2021 阅读(137) 评论(0) 推荐(0) 编辑
摘要:问题 逆序:在序列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。 逆序数:序列中逆序的总数量。 例如,在数列{3,6,7,8,2}中,{3,2},{6,2},{7,2},{8,2}都是逆序。 思路 暴力法 暴力求解就是一个个地去遍历,时间复杂度O(N^2)。 阅读全文
posted @ 2022-03-20 16:47 vicky2021 阅读(789) 评论(0) 推荐(0) 编辑
摘要:计数排序(Counting Sort)不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。 找出待排序的数组中最大和最小的元素; 统计数组中每个值为i的元素出现的次数,存入数组C的第i项; 阅读全文
posted @ 2022-03-20 14:03 vicky2021 阅读(56) 评论(0) 推荐(0) 编辑
摘要:一般来说,最好情况和最坏情况的时间复杂性是很难计量的 —— 原因是对于问题的任意确定的规模N达到了Tmax(N)的合法输入难以确定,而规模N的每一个输入的概率也难以预测或确定。我们有时也按平均情况计量时间复杂性,但那是在对P(I)做了一些人为的假设(比如等概率)之后才进行的。所做的假设是否符合实际总 阅读全文
posted @ 2022-03-20 12:05 vicky2021 阅读(653) 评论(0) 推荐(0) 编辑
摘要:分治就是分而治之,就是把一个大问题分成多个相同或相似的子问题,再把子问题分成更小的子问题……直到最后的子问题可以直接求解出来,然后将所有子问题的解的合并,就得到了大问题的解。在分治策略中,我们递归地求解一个问题,在每层递归中应用如下三个步骤: 分解(Divide),将问题划分为一些子问题,子问题的形 阅读全文
posted @ 2022-03-16 22:35 vicky2021 阅读(389) 评论(0) 推荐(0) 编辑
摘要:线性表是最简单、基本和常用的一种线性结构。 一个线性表是n个元素的有限序列,通常表示为(a1, a2, ... , an),非空线性表的特点如下: 存在唯一的一个”第一个“的元素。 存在唯一的一个”最后一个“的元素。 除第一个元素外,序列中的每个元素均只有一个直接前驱。 除最后一个元素外,序列中的每 阅读全文
posted @ 2022-03-14 22:49 vicky2021 阅读(194) 评论(0) 推荐(0) 编辑
摘要:问题 汉诺塔问题是算法经典问题,一般使用分治的思想来求解这个问题。 汉诺塔问题由三根柱子(起始柱、目标柱、辅助柱)和n个圆盘组成。开始时,在起始柱上有n个圆盘,这些圆盘自下而上,由大到小地放置在一起。各圆盘从小到大编号为1,2,…,n。要求将起始柱上的这些圆盘移动到目标柱上,并仍然按照同样的顺序放置 阅读全文
posted @ 2022-03-13 17:14 vicky2021 阅读(316) 评论(0) 推荐(0) 编辑
摘要:问题 整数划分问题,是将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。 例如,正整数6有如下11种不同的划分: 6; 5+1; 4+2,4+1+1; 3+3,3+2+1,3+1+1+1; 2+2+2,2+2+1+ 阅读全文
posted @ 2022-03-13 15:51 vicky2021 阅读(871) 评论(0) 推荐(0) 编辑
摘要:如果为了描述问题的某一状态,需要用到它的上一状态;而描述上一状态,又必须用到它的再上一状态……这样用自已来定义自己的方法称为递归。 数学表达式:f(n) = n*f(n-1) (n>0) 直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。 两个要素 边界条件:边界条件是需 阅读全文
posted @ 2022-03-13 15:50 vicky2021 阅读(701) 评论(0) 推荐(0) 编辑
摘要:引用自Machine Learning for Everyone :: In simple words. With real-world examples. Yes, again :: vas3k.com 阅读全文
posted @ 2022-03-07 21:39 vicky2021 阅读(58) 评论(0) 推荐(0) 编辑
摘要:《Edge Computing: Vision and Challenges》 by Weisong Shi 物联网爆发式的增长推动了新的计算范式:边缘计算。边缘计算是在网络的边缘来处理数据,解决响应时间的要求、电池寿命限制、带宽成本节省、以及数据安全和隐私。 云计算(2005年)改变了一切,比如: 阅读全文
posted @ 2022-03-06 22:47 vicky2021 阅读(194) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示