微博安全工程师秋招笔试记录

整理:
下列方法中,可以用于特征降维的方法包括()
主成分分析PCA
线性判别分析LDA
深度学习SparseAutoEncoder
矩阵奇异值分解SVD
最小二乘法LeastSquares
正确答案:A B C D
稀疏自编码就是用少于输入层神经元数量的隐含层神经元去学习表征输入层的特征,相当于把输入层的特征压缩了,所以是特征降维。
https://www.nowcoder.com/questionTerminal/af66b0df90e84e49bcf58ec8f898b072?toCommentId=51640

下列哪种方法不能用于文本加密()

RSA
RC4
MD5
DES
正确答案:C
链接:https://www.nowcoder.com/questionTerminal/81f417fa8610419b95d4250ec9c87275

1.RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法;
2.RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;
3.DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合;
4.MD5:严格来说不算加密算法,只能说是摘要算法;

https://zhuanlan.zhihu.com/p/44146835

常用的排序算法及其适用场景
1.介绍
常用的排序算法主要有冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序,桶排序等。
2.稳定性
其中冒泡排序,插入排序,是稳定的排序算法;选择排序,希尔排序,堆排序,归并排序,快速排序是不稳定的排序算法。
3.排序算法的实现
3.1冒泡排序
冒泡排序的时间复杂度为O(n*n),空间复杂度为O(1),在数据有序的时候时间复杂度可以达到O(n)。适用的情景为数据量量不大,对稳定性有要求,且数据基本有序的情况下。

3.2选择排序
选择排序的时间复杂度为O(n*n),空间复杂度为O(1),由于每次选出待排序数据中的最小值(增序)或最大值(降序)插入到当前的有序队列中,相对于冒泡排序减少了交换的次数。当数据量不大,且对稳定性没有要求的时候,适用于选择排序。

3.3插入排序
插入排序的时间复杂度为O(n*n),空间复杂度为O(1),最好的情况下即当数据有序时可以达到O(n)的时间复杂度,其排序的思想非常类似于我们打扑克牌的时对手里的牌进行排序的过程,选出一个值,将其插入在合适的排序位置。适用于数据量不大,对算法的稳定性有要求,且数据局部或者整体有序的情况。

3.4希尔排序
希尔排序时间复杂度为O(nlogn)到O(n*n)之间,空间复杂度为O(1),其排序的效率受到比较距离大小的影响。和插入排序的过程相似,相对于插入排序而言,比较较远距离的数据,使得数据移动跨过多个元素,进行一次比较可能会消除多个元素的交换。

3.5堆排序

堆排序的时间复杂度为O(nlog),空间复杂度为O(1)。实现原理是根据大顶堆或小顶堆得数据结构原理,对待排序数据进行调整,最终达到整体有序的效果。

3.6归并排序
归并排序的时间复杂度为O(nlog),空间复杂度为O(n),其需要借助额外的存储空间,是高级排序算法中,唯一一个稳定的排序算法,当数据量较大时,要注意考虑内存空间的开销。

3.7快速排序
快速排序算发的时间复杂度为O(nlogn),由于快速排序使用递归的方式实现,因此空间复杂度为O(nlogn)到O(n)之间。快速排序的思想是设置一个数据作为分割线,将小于它的数据交换至其左侧,大于它的数据交换到它的右侧(当数据增序排列的时候)。

3.8桶排序
桶排序的时间复杂度为O(n),是一种简单快速的排序算法,也有较大的局限性,仅适用于数据的分布相对比较集中的时候,其原理是建立一个包含一定数目桶的表,将待排序的数据通过散列算法散列到桶中,然后再遍历桶的到有序的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值