热门标签 | 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


推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
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社区 版权所有