选择题
1、顺序表存储的特点
解析:
1.随机访问
2.存储密度高
3.扩展容量不方便
4.插入、删除数据元素不方便
2、16、9、49、7、1、45、23、13,增量为4,第一轮希尔排序后,前四位数字
1、9、23、7
16和1交换,9位置不变,49和23交换,7位置不变
3、满足约束条件
x≤x
y≤y
x+y≥2
求z = x+2y的取值范围
解析:
考研内容中的题,先在坐标系总画出可取值范围,再画一条y= -1/2x的直线,平信移动时,首先相交的点时(2,0)时,z =2最小,最后相交的点时(2,2),z =4最大
4、根据以下有向图,Dijkstra算法路径是
解析:Dijiskstra算法步骤
答案:0-4-2-3-1
- 初始时,S只包含起点s;U包含除s外的其他顶点,且U中顶点的距离为”起点s到该顶点的距离”[例如,U中顶点v的距离为(s,v)的长度,然后s和v不相邻,则v的距离为∞]。
- 从U中选出”距离最短的顶点k”,并将顶点k加入到S中;同时,从U中移除顶点k。
- 更新U中各个顶点到起点s的距离。之所以更新U中顶点的距离,是由于上一步中确定了k是求出最短路径的顶点,从而可以利用k来更新其它顶点的距离;例如,(s,v)的距离可能大于(s,k)+(k,v)的距离。
- 重复步骤(2)和(3),直到遍历完所有顶点。
5、循环赛事日程表利用什么算法的思想?
解析:
递归与分治策略算法
6、自顶向下的算法有哪些?
解析:
答案:贪心算法
动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每做一次贪心选择就将所求问题简化为规模更小的子问题。
分治法是自底向上。将待求解的原问题划分成k个较小规模的子问题,对这k个子问题分别求解。如果子问题的规模仍然不够小,则再将每个子问题划分为k个规模更小的子问题,如此分解下去,直到问题规模足够小,很容易求出其解为止(子问题求解思路一致),再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解
7、SQL 中创建一个视图,再删除视图中一条数据,再查询视图,是否会显示少一条数据。
解析:
答案:是的
通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟表,其中没有数据。视图的更新实际上转到基本表上进行更新,即对视图增加或者删除记录,实际上是对其基本表增加或者删除记录。
8、NoSQL数据库的特点
解析:不需要定义表结构、不遵循范式要求、不完全满足事务的ACID特性
(1)模式自由
不需要定义表结构,数据表中的每条记录都可能有不同的属性和格式。
(2)逆规范化
NoSQL可以用描述任何一种数据文件,不具备传统关系型数据库的范式,不遵循范式要求,去掉完整性约束,减少表之间的依赖
(3)弹性可扩展
可在系统运行的过程中,动态的删除和增加节点。
(4)多副本异步复制
数据快速写入一个节点,其余节点通过读取写入的日志来实现异步复制。
(5)弱事务
不能完全满足事务的ACID特性,但是可以保证事务的最终一致性。
9、当抛掷一枚硬币时,前99次都为正面,那第一百次是正面的概率是?
答案:1
解析:
下一枚硬币投出后为正的概率是:1-1/2^99
1-1/2^99≈1
所以几乎可以认定为下一次硬币一定是为正。
10、计算抽样平均误差时,若多个样本标准差的资料应选样本标准差的哪个来计算
答案:标准差大的
解析
一般选择样本标准差大的,一般认为样本标准差大的包含的信息量大
11、小李给小王发送信息,需要先对小李的信息加密,加密时使用的是谁的公钥或者私钥?
答案:小王的公钥和小李的私钥
解析:公钥用于对数据进行加密,私钥用于对数据进行解密。小李想给小王发一个安全的保密的数据,那么应该小李小王各自有一个私钥,小李先用乙小王的公钥加密这段数据,再用自己的私钥加密这段加密后的数据.最后再发给乙,这样确保了内容即不会被读取,也不会被篡改.
12、计算106、108、109、110、110、111的均值、方差、中位数、众数
解析
13、贝叶斯网络是以什么来表示变量及其条件依赖关系?
答案:有向无环图
解析:
是一种概率图形模型,它在图形模型中显式捕获已知的有向边的条件依赖性,它通过有向无环图(DAG)表示一组变量及其条件依赖关系。
14、因特网电子邮件的第一个离线协议标准是?
答案:POP3
解析:
POP3(Post Office Protocol 3)即邮局协议的第3个版本,是因特网电子邮件的第一个离线协议标准。
SMTP(简单邮件传输协议Simple Mail Transfer Protocol),是第一个基于互联网基础传输电子邮件的标准。
15、缺失值填充方法有哪些?
答案:剔除法、均值法、最小邻居法、比率回归法、决策树法
16、KNN的是否有前期训练过程,是否有记忆,是不是监督学习方法,是不是半监督学习方法?
答案:有记忆、是有监督学习、无前期训练过程
解析:
监督学习代表算法:Nave Bayes、SVM、决策树、KNN、神经网络以及Logistic分析
半监督学习算法:半监督方法主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题,也就是根据少量已知的和大量未知的内容进行分类。代表方法有:最大期望、生成模型和图算法等。
无监督学习是利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程。也就是机器自个儿学。代表方法有:Apriori、FP树、K-means
KNN没有前期训练过程。kNN本质是基于一种数据统计的方法。 kNN是一种基于记忆的学习memory-based learning,也叫instance-based learning,属于lazy learning。即它没有明显的前期训练过程,而是程序开始运行时,把数据集加载到内存后,不需要进行训练,就可以开始分类了。
17、当发送的方法服务器不支持响应信息时的代码是?
答案:501
解析:
500 Internal Server Error 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理
编程题
1、题目:小A最近在努力学习英语。小A有一本生词本,专门用来记录见到的生词。每次小A看到一个自己不认识的单词时,就会把这个生词抄写到生词本上。经过几个月的学习之后,小A想对这个生词本上的单词进行整理。由于小A并不能保证生词抄写一遍后就记下来,因此小A可能会把一个已经记录在生词本上的单词当做不认识的往上写(即一个单词可能在生词本上出现多次)。小A希望把生词本上的单词去重,并且按字典序进行排序,然后排好版打印出来。打印排版的要求是:单词去重后按字典序从小到大的顺序排,相邻的两个单词用一个空格隔开,尽量写在同一行,且每一行至多只能有50个字符(包含空格)。单词在不能隔行写,即如果写下某个单词会超出一行的字符数限制,那么必须将这个单词整个写到下一行的开头。现在将小A若干天以来的记录的生词给你,请你帮他按照要求进行整理和排版。字典序:对两个字符串从左到右进行逐字符比较,比较过程中,一旦发现某一对被比较的字符之间不相等时,这一对字符的大小关系即为这一对字符串的大小关系。比较过程中,一旦出现某一个字符串的所有字符都已经经过比较,而另一字符串还存在未被比较的字符时,较短的字符串更小。所有字符串内的字符都被发现相等,则这两个字符串相等。例如:”abc”<”ba”, “bbc”>”abc”, “ab”<”abc”。
示例1:
样例输入
2
abandon huhuhuh muhah lalala english language study learn
abandon learn样例输出
abandon english huhuhuh lalala language learn
muhah study
示例2:
输入样例
1
abandon huhuhuh muha lalala english language study learn
输出样例
abandon english huhuhuh lalala language learn muha
study
python实现
m = int(input())
words = []
while 1:
s = input()
if s != "":
words.extend(s.split())
else:
break
words2 = list(set(words))
words2.sort()
n = 0
for w in words2:
l = n+len(w)
if l <=50:
print (w,end=' ' )
n += len(w)+1
else:
print('\n{}'.format(w),end=' ')
n = 0
这个代码通过了仅为9%,不知道哪里出了问题,希望大家指正
2、题目描述:
Alice将要设置自己在某个网站上的用户密码,她希望自己所设置的密码中只包含数字和字母,且具有一定的强度。她写下了几个待选密码,并将它们交给Bob,让Bob帮自己判断其中哪些密码是具有一定的强度的。Bob认为如果密码符合以下条件,则是具有一定强度的:
密码的长度至少为6;
密码包含的数字字符个数少于字母字符个数;
密码中没有连续5个字符均是字母;
密码中没有连续两个字符是一模一样的。
现在Bob希望你帮他写一个程序,选出那些Bob认为具有一定强度的密码。
输入描述
第一行是一个正整数n,表示Alice写下的密码个数。
接下来n行每行一个字符串,保证只包含数字和字母,每一行都代表Alice写下的一个密码。
输出描述
输出n行,每行是一个字符串”YES”或”NO”,其中第i行为”YES”表示输入的第i个密码是具有一定强度的,”NO”则表示不具有一定强度。
示例:
样例输入
4
A2b3c5d2ffc23
c3c3c3c3
c3c3c3c3c
aAaAaA
样例输出
NO
NO
YES
NO
python代码实现
import re
n = int(input())
sentence = []
while 1:
s = input()
if s != "":
sentence.append(s)
else:
break
def is_num_leq_letter(pwd):
# 判断数字字符个数少于字母字符个数
num = len(re.findall(r"\d",pwd))
w = len(re.findall(r"[a-zA-Z]",pwd))
if num<w:
return True
else:
return False
def five_continue(pwd):
# 判断连续5个是字母
num = len(re.findall(r"[a-zA-Z]{5,}",pwd))
if num>0:
return True
else:
return False
def isContinuousChar(pwd):
# 判断是否存在有连续两个相同的字母
#[a-zA-Z]是为了匹配单个字母
# \1是为了匹配与第一组内容重复的字母
num = len(re.findall(r"([a-zA-Z]|[0-9])\1",pwd))
if num>0:
return True
else:
return False
for s in sentence:
if len(s)>=6 and is_num_leq_letter(s) and not five_continue(s) and not isContinuousChar(s):
print('YES')
else:
print('NO')