自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stella的博客

学无止境,尽力而为;记录一些奇奇怪怪的问题和零散知识点

  • 博客(27)
  • 收藏
  • 关注

转载 【算法系列】排序算法(3)希尔排序

排序(3) 希尔排序一、前言希尔(Shell)又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。 希尔排序,也称递减增量排序算法,以其设计者希尔(Donald Shell)的名字命名,该算法于1959年公布。 图片来自维基百科二、算法思想对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长),将待排序元素分成若干组子序列,所以距...

2018-02-20 20:46:39 362

原创 PAT 1033. 旧键盘打字(20)

题目概述: 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。 现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式: 输入在2行中分别给出坏掉的那些键、以及应该输入的文字。 其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。 可用的字符包括字母[a-z, A-Z]、数字0-9、以及下...

2018-02-19 15:47:12 176

转载 【算法系列】排序算法(2)直接插入排序

排序(2)直接插入排序一、前言直接插入排序(Insertion Sort)是一种最简单的插入排序。下面主要以升序作为讨论。二、算法思想插入排序:每一趟将一个带排序的记录,按照其关键字的大小插入到有序队列的合适位置里,直到全部插入完成。编程语言: 假设有一组无序序列R0,R1,…,RN-1。 (1)首先,假设序列中下标为0的元素为一个有序序列。 (2)然后,我们一次...

2018-02-19 15:00:19 273

原创 PAT 1032. 挖掘机技术哪家强(20)

题目概述: 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式: 输入在第1行给出不超过105的正整数N,即参赛人数。 随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式: 在一行中给出总得分最高...

2018-02-18 21:12:42 172 1

原创 PAT 1031. 查验身份证(15)

题目概述: 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10 M:1 0 X 9 8 7 ...

2018-02-18 20:58:28 339

转载 【算法系列】排序算法(1)冒泡排序

“排序”在数据处理中经常都会看到,它作为数据结构和算法中的重要组成部分,还是需要我们系统地进行学习。 对于排序的认知,我一直都处于就是对数据进行由大到小或者由小到大的排序,但具体是怎样进行的,却一直都没办法描述清楚,希望通过这次深入的学习,可以掌握更多关于排序的认知。 以下学习内容是学习多个网站博主的一些摘抄内容,非个人总结,若有侵权,联系博主进行删除,多处转载网址如下: 1.程序员内...

2018-02-18 19:36:29 226

转载 PAT 1030. 完美数列(25)

题目概述: 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。 现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式: 输入第一行给出两个正整数N和p,其中N(<= 105)是输入的正整数的个数,p(<= 109)是给定的参数。第二行给出N个正整数,每...

2018-02-18 08:33:06 157

转载 PAT 1029. 旧键盘(20)

题目概述: 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。 输入格式: 输入在2行中分别给出应该输入的文字、以及实际被输入的文字。 每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。 题目保证2个...

2018-02-18 08:30:56 181

原创 PAT 1028. 人口普查(20)

题目概述: 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人, 而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式: 输入在第一行给出正整数N,取值在(0, 105]; 随后N...

2018-02-15 16:53:46 466

原创 PAT 1027. 打印沙漏(20)

题目概述: 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格...

2018-02-15 15:05:41 149

原创 PAT 1026. 程序运行时间(15)

题目概述: 要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。 这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。 于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用clock(),获得一个...

2018-02-13 16:53:37 150

转载 PAT 1024. 科学计数法 (20)

题目概述: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]”.”[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。输入格式: 每个输入包含1个测试用例,即一个以科学...

2018-02-08 19:59:20 163

原创 PAT 1023. 组个最小数 (20)

题目概述: 给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式: 每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数...

2018-02-08 19:42:19 181

原创 PAT 1022. D进制的A+B (20)

题目概述: 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。输入格式: 输入在一行中依次给出3个整数A、B和D。输出格式: 输出A+B的D进制数。输入样例: 123 456 8 输出样例: 1103思路: 用短除法不断得到余数即可 最后再倒序输出#include...

2018-02-08 19:38:51 177

原创 PAT 1021. 个位数统计 (15)

题目概述: 给定一个k位整数N = dk-1*10k-1 + … + d1*101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入格式: 每个输入包含1个测试用例,即一个不超过1000位的正整数N。输出格式: 对N中每一种不同的个位数...

2018-02-08 19:35:24 132

转载 PAT 1020. 月饼 (25)

题目概述: 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15...

2018-02-08 19:33:10 140

原创 PAT 1019. 数字黑洞 (20)

题目概述: 给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 ...

2018-02-08 19:28:32 147

原创 PAT 1018. 锤子剪刀布 (20)

题目概述: 大家应该都会玩“锤子剪刀布”的游戏, 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式: 输入第1行给出正整数N(输出格式: 输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。输入样例: 10

2018-02-06 16:35:45 127

转载 PAT 1017. A除以B (20)

题目概述: 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。输入格式: 输入在1行中依次给出A和B,中间以1空格分隔。输出格式: 在1行中依次输出Q和R,中间以1空格分隔。输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3

2018-02-06 16:31:16 185 2

原创 PAT 1016. 部分A+B (15)

题目概述: 正整数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 输出格式: 在一行中输出PA + PB的值。输入样例1: 386

2018-02-06 16:25:55 142

转载 PAT 1015. 德才论 (25)

题目概述: 宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式: 输入第1行给出3个正整数,分别为:N(=60),为录取最低分数线,即德分和才分均不低于L的考生才有资格被考虑录取;

2018-02-06 16:16:21 247

转载 PAT 1013. 数素数 (20)

题目概述: 令Pi表示第i个素数。现任给两个正整数M 输入格式: 输入在一行中给出M和N,其间以空格分隔。输出格式: 输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。输入样例: 5 27 输出样例: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101

2018-02-06 16:11:43 129

原创 PAT 1012. 数字分类 (20)

题目概述: 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…; A3 = 被5除后余2的数字的个数; A4 = 被5除后余3的数字的平均数,精确到小数点后1位; A5 = 被5除后余4的数字中最大数字。

2018-02-06 15:59:41 258

原创 PAT 1011. A+B和C (15)

题目概述: 给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。输入格式: 输入第1行给出正整数T(输出格式: 对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。输入样例: 4 1 2 3 2 3 4 2147483647 0 214748364

2018-02-06 15:53:53 160

转载 PAT 1010. 一元多项式求导 (25)

题目概述: 设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。输入样例: 3 4 -

2018-02-06 15:50:53 157

原创 PAT 1009. 说反话 (20)

题目概述: 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式: 每个测试用例的输出占一行,输出倒序后的句子。输入样例: Hello World H

2018-02-06 15:38:56 157

原创 PAT 1008. 数组元素循环右移问题 (20)

题目概述: 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式: 每个输入包含一个测试用例,第1行输入N ( 1=0);第

2018-02-06 15:32:03 179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除