![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Whale_XM
这个作者很懒,什么都没留下…
展开
-
算法复习之最优合并问题
问题给定k个排好序的序列s1,s2,…,sk,用2路合并算法将这k个序列合并成一个序列。假设所采用的2路合并算法合并两个长度分别为m和n的序列需要m+n-1次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需要的总比较次数最少。测试用例:4(序列数)5 12 11 2(序列中的元素数)输出:78(最差情况) 52(最优情况)问题分析需要求最优次数和最差次数,采用贪心求解。求最优次数时每次合并最短的两个,求最差时每次合并最长的两个。仔细想想,这题和霍夫曼编码就是一个事,只不过霍夫曼需原创 2020-07-01 16:17:09 · 5169 阅读 · 0 评论 -
算法复习之磁带最优储存问题
题目描述设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是Li, 1<= i<= n。这n 个程序的读取概率分别是p1,p2,…,pn,且pi+p2+…+pn = 1。如果将这n 个程序按 i1,i2,…,in 的次序存放,则读取程序ir 所需的时间tr=c*(Pi1Li2+Pi2Li2+…+Pir*Lir)。这n 个程序的平均读取 时间为t1+t2+…+tn。 磁带最优存储问题要求确定这n 个程序在磁带上的一个存储次序,使平均读取时间达到 最小。试设计一原创 2020-07-01 15:10:20 · 2536 阅读 · 0 评论 -
算法复习之动态规划
前言算法真难!我现在只想及格,千万别让我挂了动态规划原理基本思想将待求解问题分解成若干子问题,然后先求解子问题,再将子问题的解合成原问题的解。步骤分析最优解的结构递归地定义最优解的代价自底向上(?)的计算最优解并保存最优解信息根据第四步求出的最优解信息构造最优解特点将原始问题化为一系列子问题将求解的每个子问题的结果保存在一个表中,需要时直接查表就行。我自己认为这是动态规划最大的特点了,以空间换时间自底向上计算整体问题的解取决于子问题的解与递归分治的区别将结果存入表中原创 2020-06-24 15:43:05 · 162 阅读 · 0 评论 -
递归与分治算法
前言终于到期末了,平时欠的债现在该还了(哭唧唧),我打算一天一章,快速复习(预习)算法设计与分析,希望我不要挂科啊!!!一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。原创 2020-06-22 16:32:40 · 914 阅读 · 0 评论 -
【分治算法】大整数乘法
前言最近开了算法导论课,上来就是递归分治,大整数乘法就是分治法的典型案例,通过参考网上书上我终于编程实现了大整数乘法,特此纪念原理由于两个大整数直接相乘太大,所以我们可以将它划分成几个小块分别相乘,最后再加起来,不仅降低了运算难度,还减少了时间复杂度。代码实现#include<iostream>#include<math.h>#include<stdio...原创 2020-04-21 23:50:52 · 1621 阅读 · 0 评论 -
CRC校验算法
0X1 CRC概念CRC,即循环冗余校验算法。是目前使用的最古老的校验算法(用于校验文件完整性,一般不用于加密,毕竟CRC是一种HASH算法,不可逆),将CRC加密生成的数字加在原数据之后,形成新的新的数据。一般来说,循环冗余校验的值都是32位的整数。由于本函数易于用二进制的电脑硬件使用、容易进行数学分析并且尤其善于检测传输通道干扰引起的错误,因此获得广泛应用。0X2 基本原理在一个p位的...原创 2019-11-11 16:26:21 · 3197 阅读 · 0 评论 -
RC4加密方式及代码实现
定义RC4是一种流密码,通过明文流逐位加密产生密文。同时,他是一种对称密码,加密解密使用同一个密钥,下面这幅图,可以很好的说明RC4这样的流密码的加密过程。原理RC4加密的原理主要分三步:初始化S和TS=[]T=[]for i in range(256): S.append(i) T[i]=K[i%len(K)]初始化排列S for i in range(256...原创 2019-09-11 18:31:00 · 2176 阅读 · 0 评论 -
7-1 一元多项式求导 (20 分)
设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。输入样例:3 4 -5 2 6 1 -2 0输出样例:12 3 -10 1 6 0//第一个判断点是样例,第二个是输入,第四个是输出#includ...原创 2019-09-18 20:15:03 · 3127 阅读 · 0 评论 -
7-2 求链式线性表的倒数第K项 (20 分)
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。输入格式:输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。输入样例:4 1 2 3 4 5 6 7 8 9 0 -1输出样例:7#include<stdio.h>...原创 2019-09-18 20:40:23 · 1507 阅读 · 2 评论