热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多益网络2019秋招笔试题

1、哈希散列值的计算平均查找长度哈希表的构造方法:(1)、数字分析法:事先知道关键字的集合,且每个关键字的位数

1、哈希散列值的计算平均查找长度

        哈希表的构造方法:

            (1)、数字分析法:事先知道关键字的集合,且每个关键字的位数比哈希表的地址码位数多时,可以从关键字中选出分布比较均匀的若干位,构成哈希地址。

            (2)、平方取中法:当无法确定关键字中哪几位分布比较均匀时,可以先求出关键字的平方值的中间几位作为哈希地址

            (3)、分段叠加法:按哈希表的地址位数将关键字分成位数相等的几部分(最后一部分较短),然后将这几部分相加,舍弃最高位后的结果就是该关键字的哈希地址。

            (4)、除留余数法:假设哈希表长为 m,p为小于等于 m 的 最大数数,则哈希 函数为 H(k) = k%p

            (5)、伪随机数为:采用一个伪随机函数作为哈希函数,即 H(key) = random(key)

         哈希表处理冲突的方法:

            (1)、开放定址法

            (2)、再哈希法

            (3)、链地址法   

            (4)、建立公共溢出区

          哈希表的性能分析:

                哈希法中影响关键字比较次数的因素有三个:哈希函数,处理冲突的方法,哈希表的装填因子。装填因子 a 的定义如下:         a  = 哈希表中元素的个数 / 哈希表的长度            a 可描述哈希表的装满程度。a 越小,发生冲突的可能性越小; a 越大 ,发生冲突的可能性越大。

2、堆的排序算法

3、后缀表达式

         前缀表达式、中缀表达式、后缀表达式都是四则运算的表达方式,用以四则运算表达式求值,即数学表达式的求值。

         前缀表达式:前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前。比如:- × + 3 4 5 6。前缀表达式求值:从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 op 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果

         中缀比表达式:中缀表达式就是常见的运算表达式,如(3+4)×5-6。

         后缀表达式:后缀表达式又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后。比如: 3 4 + 5 × 6 - 。
         具体使用方法,参考博客:https://www.cnblogs.com/Hslim/p/5008460.html

4、哈夫曼编码

     参考博客:https://blog.csdn.net/dongfei2033/article/details/80657360

5、二叉树的结点计算问题及性质

        性质1 : 二叉树的第 i 层上至多有 2^(i-1) 个结点 (i>=1)

        性质2 :  深度为 k 的二叉树至多有 2^k -1 个结点( k>=1)

        性质3 :  对任意的一颗二叉树 T ,若叶子结点数为 n0,而其度数为 2 的结点数为 n2,则 n0 = n2+1

        性质4 :  具有 n 个结点的完全二叉树的深度 [log2n]+1

        性质 5&#xff1a;  如果有一颗有n个节点的完全二叉树的节点按层次序编号&#xff0c;对任一层的节点i&#xff08;1<&#61;i<&#61;n&#xff09;有

                        (1).如果i&#61;1&#xff0c;则节点是二叉树的根&#xff0c;无双亲&#xff0c;如果i>1&#xff0c;则其双亲节点为[i/2]&#xff0c;向下取整

                        (2).如果2i>n那么节点i没有左孩子&#xff0c;否则其左孩子为2i

                        (3).如果2i&#43;1>n那么节点没有右孩子&#xff0c;否则右孩子为2i&#43;1

6、关系型数据库的构成

       关系型数据是指以关系数学模型来表示的数据&#xff0c;关系数学模型中以二维表的形式来描述数据。关系型数据库是存储在计算机上的、可共享的、有组织的关系型数据的集合。 关系模型由关系数据结构&#xff0c;关系操作集合、关系完整性约束三部分组成。

7、文件逻辑记录和文件物理记录

    记录是文件存取操作的基本单位。逻辑记录&#xff1a;是按用户观点的基本存取单位。物理记录&#xff1a;是按外存设备观点的基本存取单位。通常逻辑记录和物理记录之间存在三种关系&#xff1a;(1)一个物理记录存放一个逻辑记录&#xff1b; (2)一个物理记录包含多个逻辑记录&#xff1b; (3)多个物理记录表示一个逻辑记录。

8、sql 的索引&#xff0c;主键&#xff0c;唯一索引&#xff0c;联合索引的区别&#xff0c;对数据库有什么影响

          &#xff08;1&#xff09;索引是一种特殊的文件&#xff0c;它们包含数据表里的所有记录的引用指针。索引的遵照原则&#xff1a;

                    (a). 最左侧原则&#xff1a;表的最左侧一列&#xff0c;往往数据不会发生改变&#xff0c;不影响其他列的数据

                    (b).命名短小原则&#xff1a;索引命名过长会使索引文件变大&#xff0c;损耗内存。

            (2). 普通索引&#xff08;由关键字 KEY或 INDEX 定义得到的索引&#xff09;&#xff1a;加快数据的查询速度

            (3). 唯一索引&#xff08;由关键字 UNIQUE 把它定义为唯一索引&#xff09;&#xff1a;保证数据的唯一性

            (4). 主键&#xff1a;一种特殊的唯一索引&#xff0c;一张表中只能定义一个主键索引&#xff0c;用来标识唯一一条数据&#xff0c;用 PRIMARY KEY 创建

            (5). 联合索引&#xff1a;索引可以覆盖多个数据列&#xff0c;如像 INDEX 索引就是联合索引

            索引可以极大的提高查询访问速度&#xff0c;但是会降低插入&#xff0c;删除&#xff0c;更新表的速度&#xff0c;应为在执行写的操作的时候还要操作索引文件。

9、TCP 传输的时候怎么保证传输的可靠性

            参考我的往期博客&#xff1a; 

                    https://blog.csdn.net/qq_35396127/article/details/80847189

10、如何确定UDP传输中是数据包是否被接收方正确接收。
        可以在每个数据包中插入一个唯一的ID&#xff0c;比如timestamp或者递增的int。 发送方在发送数据时将此ID和发送时间记录在本地。 接收方在收到数据后将ID再发给发送方作为回应 发送方如果收到回应&#xff0c;则知道接收方已经收到相应的数据包&#xff1b;如果在指定时间内没有收到回应&#xff0c;则数据包可能丢失&#xff0c;需要重复上面的过程重新发送一次&#xff0c;直到确定对方收到。

11、数据库的安全性&#xff1a;指保护数据库&#xff0c;防止不合法的使用造成的数据泄露、更改或破坏。

SQL Server 2000 的安全性机制由四层构成
第一层&#xff1a;操作系统的登录
第二层&#xff08;服务器安全管理&#xff09;&#xff1a;SQL Server的登录————特殊账户sa
第三层&#xff08;数据库安全管理&#xff09;&#xff1a;数据库的访问权————成为数据库用户
第四层&#xff08;数据库对象安全管理&#xff09;&#xff1a;数据库对象&#xff08;表、视图等&#xff09;的访问权———数据库用户获得角色

12、事务隔离级别是由谁实现的&#xff1f;&#xff08;数据库系统&#xff09;
         在数据库操作中&#xff0c;为了有效保证并发读取数据的正确性&#xff0c;提出的事务隔离级别&#xff1b;为了解决更新丢失&#xff0c;脏读&#xff0c;不可重读&#xff08;包括虚读和幻读&#xff09;等问题在标准SQL规范中&#xff0c;定义了4个事务隔离级别&#xff0c;分别为未授权读取&#xff0c;也称为读未提交&#xff08;read uncommitted&#xff09;&#xff1b;授权读取&#xff0c;也称为读提交&#xff08;read committed&#xff09;&#xff1b;可重复读取&#xff08;repeatable read&#xff09;&#xff1b;序列化&#xff08;serializable&#xff09;.

编程题&#xff1a;

幸福的数字是由以下过程定义的数字&#xff1a;从任何正整数开始&#xff0c;将数字替换为数字的平方和&#xff0c;并重复该过程&#xff0c;直到数字等于1&#xff08;将保留在哪里&#xff09;&#xff0c;或者循环 一个不包括在内的循环的循环中&#xff0c;这个过程以1结尾的数字是快乐的数字。例如19是幸运数字 给定一个数&#xff0c;计算是不是幸运数。

解题思路&#xff1a;

/*
while 该位上的数不为0{1.计算给定数的每位上的数2.计算其每位数上的平方和
}
如果平方和不为1&#xff0c;返回重新计算该平方和的各个位置上数的新的平方和&#xff0c;1000次后还不为1&#xff0c;可能不是幸运数&#xff1b;
如果平方和为1&#xff0c;return true
*/public class test
{public static void main(String[] args){int input &#61; 101;System.out.println(isHappy(input));}static boolean isHappy(int n){int cnt &#61; 0, k &#61; n;while (k !&#61; 1 && cnt <1000){int tmp &#61; 0;while (k !&#61; 0){tmp &#43;&#61; (k % 10) * (k % 10);k /&#61; 10;}k &#61; tmp;cnt&#43;&#43;;}return k &#61;&#61; 1;}
}

转载地址&#xff1a;https://blog.csdn.net/qq_35396127/article/details/80820502


推荐阅读
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
author-avatar
让爱自由2009
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有