算法
文章平均质量分 51
云间烟火
这个作者很懒,什么都没留下…
展开
-
蓝桥基础第28题:Huffuman树
Huffuman树 问题描述 问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中只剩下一个数。 在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树原创 2021-03-23 10:48:46 · 126 阅读 · 0 评论 -
大数运算:蓝桥杯基础第29题(高精度加法)
原理同大数乘法类似,在这个帖子中 题目描述 问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[原创 2021-03-22 20:22:12 · 96 阅读 · 0 评论 -
大数运算:蓝桥基础第30题(阶乘计算)
大数运算 方法 数据过大时,一般的数据类型无法存储,此时要使用大数运算的专门方法,即用数组存储数据,模拟手算,按位计算。 例如:1234*4 用int数组a来存储 第一步:将个十百千位分别存到a[0]、a[1]、a[2]、a[3]中。此时a={4,3,2,1}; 第二步:从个位开始乘以4,注意进位运算。 (1)4 * 4 = 16,个位6存储在a[0]中,记下进位1,此时a={6,3,2,1}; (2)3 * 4 = 12 ,加进位1得13,个位3存储在a[1]中,记下进位1,此时a={6,3,2,1};原创 2021-03-22 18:56:52 · 137 阅读 · 0 评论