考研:数据结构
复苏0
某三本渣渣大三学僧
展开
-
算法题练习05:部分A+B
难度:简单题目描述正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA、B、DB,请编写程序计算PA + PB。输入输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。输出在一行中输出PA + PB的值。样例输入3862767 6 13530293 33862767 1 13530293 8样例输出39原创 2020-06-12 00:01:12 · 170 阅读 · 0 评论 -
算法题练习04:数字分类
难度:简单题目描述给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。输入每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。输出对给原创 2020-06-11 23:32:56 · 239 阅读 · 0 评论 -
数据结构之希尔排序(浙大mooc笔记)
数据结构之希尔排序例子:首先,以5为间隔对各个子序列进行插入排序,然后再以3为间隔进行插入排序,最后以1为间隔进行插入排序。以下是一个动图示例,便于理解:思想主要思想:定义增量序列DM>DM−1>⋯>D1=1D_M>D_{M-1}>\cdots>D_1=1DM>DM−1>⋯>D1=1注:最后一步必须是以1为间隔对每个DkD_kDk进行“Dk−间隔"“D_k-间隔"“Dk−间隔"排序(k=M,M−1,…,1)(k=M,M-1,原创 2020-06-11 21:41:45 · 486 阅读 · 0 评论 -
算法题练习03:特殊乘法
题目描述写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 14 +15 +24 +25 +34+35输入两个小于1000000000的数输出输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。样例输入24 6542 666663 &nbs原创 2020-06-07 17:48:25 · 360 阅读 · 0 评论 -
算法题练习02:A+B
算法题练习02:A+B题目描述给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。现在请计算A+B的结果,并以正常形式输出。输入输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。输出请计算A+B的结果,并以正常形式输出,每组数据占一行。样例输入-234,567,890 123,456,7891,234 &nbs原创 2020-06-07 17:34:31 · 355 阅读 · 0 评论 -
算法题练习01:剩下的树
算法题练习01:剩下的树问题描述【题目】有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。【简要概括】1.输入两个整数 L原创 2020-06-07 00:51:03 · 278 阅读 · 0 评论 -
数据结构之简单排序(浙大mooc笔记)
简单排序的定义(浙大mooc笔记)文章目录简单排序的定义(浙大mooc笔记)冒泡排序最原始的冒泡排序:冒泡排序的改进:冒泡排序的时间复杂度思考常见格式:void X_sort(ELementType A[],int N)大多数情况下,为简单起见,讨论从小到大排序默认条件:1.N是正整数2.只讨论基于比较的排序(> = < 有定义)3.只讨论内部排序4.稳定性:任意两个相等的数据,排序前后的相对位置不发生改变重要的一点:没有任何一种排序是任何情况下都表现最好的冒泡排序图例原创 2020-06-06 18:06:23 · 532 阅读 · 0 评论 -
数据结构与算法必备知识点:复杂度复杂度
数据结构与算法必备知识点:复杂度一般来说,复杂度可以分为 时间复杂度 和 空间复杂度 ,有时还会有 编码复杂度 。1.时间复杂度时间复杂度是算法需要执行基本运算的次数所处的等级。基本运算类似于加减乘除这种计算机可以直接实现的运算。举个简单的例子,下面是一个for循环,用来计算数组a中元素的和:for(int i =0 ; i < n; i++){ sum = sum + a[i];}就这段代码来说,for循环执行了n次,因此共有n次运算,而下面的代码加了两次a[i],因此共有2原创 2020-06-05 23:13:02 · 280 阅读 · 0 评论