![](https://img-blog.csdnimg.cn/20190830221339952.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 83
码不停Ti
信息安全在校大学生
展开
-
【算法复习4】C++ STL 中的 sort()和Java 语言中的 Collections.sort()通用的、高性能的排序函数
【算法复习4】C++ STL 中的 sort()和Java 语言中的 Collections.sort()通用的、高性能的排序函数经典排序算法快排优化1. 三数取中法2. 随机法快排避免堆栈溢出评论区大佬的笔记Arrays.sortTimsort谷歌V8 QuickSort排序思考过程比答案重要,有答案来验证自己的思考是否准确在初学时期也很重要经典排序算法首选时间复杂度是 O(nlogn)堆排序和快速排序都有比较多的应用,Java 语言采用堆排序实现排序函数C 语言使用快速排序实现排序函数原创 2021-03-08 00:29:09 · 528 阅读 · 0 评论 -
【算法复习3】时间复杂度 O(n) 的排序 桶排序 计数排序基数排序
对要排序的数据要求很苛刻重点的是掌握这些排序算法的适用场景【算法复习3】时间复杂度 O[n] 的排序 桶排序 计数排序基数排序桶排序(Bucket sort)时间复杂度O(n)苛刻的数据计数排序(Counting sort)基数排序(Radix sort)评论区大佬的总结桶排序(Bucket sort)将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排完序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的了。时间复杂度O(n)n个数据分到 m 个桶内,每原创 2021-03-08 00:07:44 · 947 阅读 · 0 评论 -
【算法复习2】时间复杂度 O(nlogn)快速排序 归并排序分析
【算法复习2】时间复杂度 O[nlogn]快速排序归并排序分析归并排序稳定性递归转递推时间复杂度很稳定归并致命的空间复杂度快速排序快排 规则原地排序 超越归并缺点快排性能分析总结归并排序分治思想分解递归 对半分 直到 分成 1个合并两个 元素 排序后 合并 依次类推直到合成一个大数组分治是一种编程思想递归是一种编程技巧分治一般由递归来实现稳定性归并排序 稳定 主要看 子数组 排序后 merge 合并的函数如何执行可以按先后顺序 合并 merge 函数 保证算法的稳定性递归转递推原创 2021-03-07 23:29:44 · 665 阅读 · 0 评论 -
【算法复习1】时间复杂度同为n2冒泡排序 插入排序 选择排序三者分析
今天 看了极客时间的 数据结构之美的专栏有感而发 记录一下自己的 笔记存在主观推断 不保证准确性交换次数冒泡排序 可能次次都交换 感觉更适合 数组的交换方法 相邻直接进行交换插入排序 也可能次次都交换,感觉更适合链表的方法 中间插入 向后移动选择排序 每轮只用交换一次 但是后面的 有可能换到前面去 ,反而不稳定了,也是适合 链表,但是移动赋值操作冒泡排序的数据交换要比插入排序的数据移动要复杂,冒泡排序需要 3 个赋值操作,选择排序每轮也需要移动一个,适用于 数组连续空间下标访问,.原创 2021-03-07 22:34:21 · 828 阅读 · 0 评论 -
【笔记】算法OJ 杂记C++ Java 容器使用
很久不做算法题目了马上春招了才重新拿起来虽然 CSDN关于 PAT 的 博文 就写了 四五百篇但是 一两个月不做题 真的都忘干净了而且 我主攻打 Java 技术栈就尽量 一道 题目 用C++ 和 Java 都完成一份C++ 的容器使用 都忘了Java 的更是 不熟练所以 开一篇 博文 记录一下 杂乱的笔记算法OJ 杂记C++ Java 容器使用 笔记头插节点Java使用 queueJava 和 C++ 队列出队 不同笔记头插节点Java List 使用 add 添加可以直.原创 2021-03-04 17:54:57 · 383 阅读 · 1 评论 -
1079 延迟的回文数 (20 分)
1079延迟的回文数(20分)给定一个k+1位的正整数N,写成ak⋯a1a0的形式,其中对所有i有0≤ai<10且ak>0。N被称为一个回文数,当且仅当对所有i有ai=ak−i。零也被定义为一个回文数。非回文数也可以通过一系列操作变出回文数。首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文数...原创 2019-08-16 11:27:47 · 1025 阅读 · 0 评论 -
1080 MOOC期终成绩 (25 分)
1080MOOC期终成绩(25分)对于在中国大学MOOC(http://www.icourse163.org/)学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满分100)。总评成绩的计算公式为G=(Gmid−term×40%+Gfinal×60%),如果Gmid−term>Gfina...原创 2019-08-16 12:23:26 · 1754 阅读 · 1 评论 -
1070 结绳 (25 分)
1070结绳(25分)给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。给定N段绳子的长度,你需要找出它们能串成的绳子的最大长度。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数N(...原创 2019-08-16 12:41:31 · 1340 阅读 · 3 评论 -
1091 N-自守数 (15 分)
1091N-自守数(15分)如果某个数K的平方乘以N以后,结果的末尾几位数等于K,那么就称这个数为“N-自守数”。例如3×922=25392,而25392的末尾两位正好是92,所以92是一个3-自守数。本题就请你编写程序判断一个给定的数字是否关于某个N是N-自守数。输入格式:输入在第一行中给出正整数M(≤20),随后一行给出M个待检测的...原创 2019-08-13 00:08:39 · 800 阅读 · 0 评论 -
1093 字符串A+B (20 分)
1093字符串A+B(20分)给定两个字符串A和B,本题要求你输出A+B,即两个字符串的并集。要求先输出A,再输出B,但重复的字符必须被剔除。输入格式:输入在两行中分别给出A和B,均为长度不超过106的、由可见 ASCII 字符 (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。输出格式:在一行中输出题面要求的A和B的和。...原创 2019-08-13 00:21:16 · 1003 阅读 · 4 评论 -
1061 判断题 (15 分)
1061判断题(15分)判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。输入格式:输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔...原创 2019-08-20 22:55:04 · 1559 阅读 · 0 评论 -
1086 就不告诉你 (15 分)
1086就不告诉你(15分)做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53...原创 2019-08-13 00:28:19 · 2444 阅读 · 0 评论 -
1078 字符串压缩与解压 (20 分)
1078字符串压缩与解压(20分)文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如ccccc就用5c来表示。如果字符没有重复,就原样输出。例如aba压缩后仍然是aba。解压方法就是反过来,把形如5c这样的表示恢复为ccccc。本题需要你根据压缩或解压的要求,对给定字符串进行处理。...原创 2019-08-16 10:32:29 · 1350 阅读 · 0 评论 -
1077 互评成绩计算 (20 分)
1077互评成绩计算(20分)在浙大的计算机专业课中,经常有互评分组报告这个环节。一个组上台介绍自己的工作,其他组在台下为其表现评分。最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平均分记为G1;老师给这个组的评分记为G2。该组得分为(G1+G2)/2,最后结果四舍五入后保留整数分。本题就要求你写个程序帮助老师...原创 2019-08-16 09:25:36 · 1658 阅读 · 0 评论 -
1076 Wifi密码 (15 分)
1076Wifi密码(15分)下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设...原创 2019-08-16 09:00:34 · 4823 阅读 · 0 评论 -
1085 PAT单位排行 (25 分)
1085PAT单位排行(25分)每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜。本题就请你实现这个功能。输入格式:输入第一行给出一个正整数 N(≤105),即考生人数。随后 N 行,每行按下列格式给出一个考生的信息:准考证号 得分 学校其中准考证号是由 6 个字符组成的字符串,其首字母表示考试的级别:B代表乙级,A代表甲级,T代表顶级;得分是 [0...原创 2019-08-16 08:44:51 · 1760 阅读 · 0 评论 -
1038 统计同成绩学生 (20 分)
1038统计同成绩学生(20分)本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。输入格式:输入在第 1 行给出不超过105的正整数N,即学生总人数。随后一行给出N名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。输出格式:在一行中按查询顺序给出得分等于指定分...原创 2019-08-21 09:44:09 · 1156 阅读 · 2 评论 -
1037 在霍格沃茨找零钱 (20 分)
1037在霍格沃茨找零钱(20分)如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在 1 行中分别给出P和A,格式为Galle...原创 2019-08-21 09:32:42 · 1766 阅读 · 0 评论 -
1064 朋友数 (20 分)
1064朋友数(20分)如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。输入格式:输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于...原创 2019-08-20 23:58:49 · 1389 阅读 · 0 评论 -
1062 最简分数 (20 分)
1062最简分数(20分)一个分数一般写成两个整数相除的形式:N/M,其中M不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数N1/M1和N2/M2,要求你按从小到大的顺序列出它们之间分母为K的最简分数。输入格式:输入在一行中按N/M的格式给出两个正分数,随后是一个正整数分母K,其间以空格分隔。题目保证...原创 2019-08-20 23:30:04 · 1064 阅读 · 0 评论 -
1084 外观数列 (20 分)
1084外观数列(20分)外观数列是指具有以下特点的整数序列:d, d1, d111, d113, d11231, d112213111, ...它从不等于 1 的数字d开始,序列的第 n+1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个d,所以就是d1;第 2 项是 1 个d(对应d1)和 1 个 1(对应 11),所以第 3 项就是d111。...原创 2019-08-15 19:58:05 · 1663 阅读 · 2 评论 -
1049 数列的片段和 (20 分)
1049数列的片段和(20分)给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这 1...原创 2019-08-25 12:11:38 · 1936 阅读 · 17 评论 -
1087 有多少不同的值 (20 分)
1087有多少不同的值(20分)当自然数n依次取 1、2、3、……、N时,算式⌊n/2⌋+⌊n/3⌋+⌊n/5⌋有多少个不同的值?(注:⌊x⌋为取整函数,表示不超过x的最大自然数,即x的整数部分。)输入格式:输入给出一个正整数N(2≤N≤104)。输出格式:在一行中输出题面中算式取到的不同值的个数。输入样例:2017输出样例:...原创 2019-08-13 00:39:24 · 1087 阅读 · 1 评论 -
【ZOJ】1001A + B Problem
今天做PAT看见一个特别炫酷的一栏,就做了一道题。。。。A + B ProblemTime Limit: 2000 msMemory Limit: 65536 KBCalculate a + bInputThe input will consist of a series of(原谅我英文不好,没看到这个) pairs of integers a and b,separat...原创 2019-08-21 21:57:54 · 1361 阅读 · 4 评论 -
【未完成】1068 万绿丛中一点红 (20 分)
1068万绿丛中一点红(20分)对于计算机而言,颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为M×N的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的颜色差充分大。输入格式:输入第一行给出三个正整数,分别是M和N(≤1000),即图像的分辨率;以及 TOL,是所求像素点与相邻点的颜色差阈值,色差超过...原创 2019-08-16 23:29:14 · 403 阅读 · 0 评论 -
【数据结构】kmp算法笔记
kmp算法笔记KMP算法数据结构课上讲了两天,还是晕晕乎乎的,先把《算法笔记》里的笔记放上来吧~以后想起来再看笔记文件过大,出不来可以先等等笔记很占服务器带宽,访问速度应该挺慢的~...原创 2019-09-20 12:48:42 · 560 阅读 · 0 评论 -
1048 数字加密 (20 分)
1048数字加密(20分)本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依...原创 2019-08-23 09:38:50 · 1449 阅读 · 0 评论 -
1047 编程团体赛 (20 分)
1047编程团体赛(20分)编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。现给定所有队员的比赛成绩,请你编写程序找出冠军队。输入格式:输入第一行给出一个正整数N(≤104),即所有参赛队员总数。随后N行,每行给出一位队员的成绩,格式为:队伍编号-队员编号 成绩,其中队伍编号为 1 到 1000 的...原创 2019-11-04 20:19:14 · 796 阅读 · 0 评论 -
1046 划拳 (15 分)
1046划拳(15分)划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数N(≤100),随后...原创 2019-08-22 19:34:11 · 653 阅读 · 0 评论 -
1045 快速排序 (25 分)
1045快速排序(25分)著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 $N = 5$, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元; ...原创 2019-08-22 19:09:36 · 2516 阅读 · 4 评论 -
1044 火星数字 (20 分)
1044火星数字(20分)测试点1 ,4开始没过火星人是以 13 进制计数的:地球人的 0 被火星人称为 tret。 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。 火星人将进位以后的 12 个高位数字分别称为:tam, hel, maa, huh, tou, k...原创 2019-08-22 17:37:25 · 2258 阅读 · 0 评论 -
7-6 出生年 (15 分)
7-6出生年(15分)以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。输入格式:输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4...原创 2019-08-17 19:46:37 · 2166 阅读 · 0 评论 -
1043 输出PATest (20 分)
1043输出PATest(20分)给定一个长度不超过104的、仅由英文字母构成的字符串。请将字符重新调整顺序,按PATestPATest....这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过104的、仅由英...原创 2019-08-22 15:31:56 · 1460 阅读 · 9 评论 -
1042 字符统计 (20 分)
1042字符统计(20分)请编写程序,找出一段给定文字中出现最频繁的那个英文字母。输入格式:输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。输出格式:在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计...原创 2019-08-22 15:18:07 · 1554 阅读 · 0 评论 -
1041 考试座位号 (15 分)
1041考试座位号(15分)每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数N(...原创 2019-08-22 15:04:07 · 897 阅读 · 0 评论 -
1040 有几个PAT (25 分)
1040有几个PAT(25分)字符串APPAPT中包含了两个单词PAT,其中第一个PAT是第 2 位(P),第 4 位(A),第 6 位(T);第二个PAT是第 3 位(P),第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成多少个PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。输出格式:...原创 2019-08-22 14:58:05 · 2931 阅读 · 8 评论 -
1039 到底买不买 (20 分)
1039到底买不买(20分)小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1...原创 2019-08-22 14:35:25 · 1480 阅读 · 0 评论 -
7-8 阅览室 (20 分)
7-8阅览室(20分)天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S...原创 2019-08-17 08:41:33 · 3745 阅读 · 0 评论 -
7-9 人以群分 (25 分)
7-9人以群分(25分)社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。输入格式:输入第一行给出一个正整数N(2≤N≤105)。随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。...原创 2019-08-17 08:36:56 · 2444 阅读 · 0 评论 -
7-13 非常弹的球 (30 分)
7-13非常弹的球(30分)刚上高一的森森为了学好物理,买了一个“非常弹”的球。虽然说是非常弹的球,其实也就是一般的弹力球而已。森森玩了一会儿弹力球后突然想到,假如他在地上用力弹球,球最远能弹到多远去呢?他不太会,你能帮他解决吗?当然为了刚学习物理的森森,我们对环境做一些简化:假设森森是一个质点,以森森为原点设立坐标轴,则森森位于(0, 0)点。 小球质量为w/100千克(kg)...原创 2019-08-17 08:34:50 · 1877 阅读 · 2 评论