当前位置 > 首页 > 国际新闻 > 正文

数据库常见面试题2
  • 发布时间:2020-03-05
  • www.masiah.com.cn
  • 前十名排序

    ①冒泡排序是一种简单的排序算法。它反复访问要排序的序列,一次比较两个元素,如果它们的顺序不对,就切换它们。

    ②选择排序首先在未排序的序列中找到最小的(大)元素并将其存储在排序序列的起始位置,然后继续从剩余的未排序元素中找到最小的(大)元素并将其放在排序序列的末尾。等等,直到所有元素都被排序。

    ③插入排序算法描述是一种简单直观的排序算法。它的工作原理是在有序序列中来回扫描未排序的数据,找到相应的位置并插入。

    ④希尔排序也是一种插入排序,它是突破O(n2)的第一批算法之一。它和插入排序的区别在于,它优先考虑远离的元素。希尔排序也称为缩减增量排序。

    ⑤合并排序是用分治法将有序子序列合并,得到一个完全有序的序列;也就是说,首先对每个子序列进行排序,然后对子序列段进行排序。如果两个有序表合并成一个有序表,这称为双向合并。

    ⑥快速排序通过一次排序将待排序的记录分成两个独立的部分。如果记录的一部分的关键字比另一部分的关键字小,则记录的两部分可以连续排序,以达到整个序列的顺序。

    ⑦堆排序是指利用堆的数据结构设计的排序算法。堆叠是一种几乎完整的二叉树结构,同时满足堆叠的性质:即子节点的键值或索引总是小于(或大于)其父节点。

    ⑧计数排序的核心是将输入数据值转换成关键字,并将其存储在额外的数组空间中。作为一种线性时间复杂度,计数排序要求输入数据必须是一个有一定范围的整数。

    ⑨桶排序是计数排序的升级版本。桶排序假设输入数据是均匀分布的,数据被分成有限的桶,每个桶被单独排序(可以使用另一种排序算法或继续使用递归方式的桶排序进行排序)

    ⑩基数排序是先按较低的顺序排序,然后收集;按照高的顺序,然后收集;等等,直到最高位。有时有些属性有优先顺序,首先是低优先级,然后是高优先级。最后一个顺序是高优先级第一,高优先级同样低优先级高优先级第一。

    5。解决技术问题的五个步骤和解决算法问题的五种方法。(程采访)

    五步曲:第一步。向面试官提问以消除疑虑。

    步骤2。设计一个算法。(时间复杂性、空间复杂性、数据量)

    步骤3。先写伪代码,但一定要告诉面试官下一步会写真正的代码。

    步骤4。慢慢写代码。

    步骤5。测试书面代码,并仔细纠正每一个错误。(极端、错误、一般用例)

    五种解决方案:1。穷举方法;(时针和分针之间的角度)

    2。模式匹配方法;(有序数组旋转后的最小值)

    3。简化归纳方法;(杂志上的勒索信)4。简单的建造方法;(递归方法通常用于这类问题,例如:非重复字符的排列和组合)

    5。数据结构的头脑风暴法。(随机数的中位数)

    解释什么是递归算法?涉及递归算法的三个定律是什么?递归和堆栈?

    递归,简单地说,是一种函数直接或间接调用自身的方法。它通常会将一个大而复杂的问题转化为一个小问题,类似于原来要解决的问题(比如查字典)。解决大问题的方法和解决小问题的方法通常是一样的。

    所有递归算法必须遵循三个法则(这也是选择递归的关键):①递归算法必须有一个基点(显式递归终止条件);(2)递归算法必须有一个趋向于基点的状态变化过程(给出递归终止时的处理方法);(3)递归算法必须调用自身(提取重复的逻辑以减少问题的规模)。

    递归是进出堆栈的过程。递归深度是堆栈的高度。当没有递归终止条件时,即当递归深度不受限制时,堆栈溢出

    (2)。这个问题的解决方法是递归的(有些问题只能用递归方法来解决,例如河内问题……);

    (3)。数据结构是递归的(链表、树等的操作)。包括树的遍历、树的深度、)。

    什么是“哈希算法”以及它们的用途是什么?解决哈希冲突的方法有哪些?

    哈希算法或哈希函数。哈希函数可以改变任意长度的输入来获得固定长度的输出。同时,它是一种单向密码体制,即从明文到密文的不可逆映射,只有加密过程,没有解密过程。哈希函数的单向特性和固定长度的输出数据使它能够生成消息或数据。它用于密码有效性、消息和数据完整性以及许多其他加密系统。

    加密是将明文转换成称为“密文”的密码格式的过程。为了转换文本,该算法使用一系列称为“密钥”的位来计算。密钥越大,创建密文的潜在模式就越多。大多数加密算法使用长度大约为64到128位的固定输入块,而有些算法使用流方法。一些常用的加密算法有:3路;河豚;CAST。芝加哥商品交易所;GOSTDES和Triple;数据交换系统;民主选举学会;LOKI等人的

    hash函数引用了如何处理关键字的规则。这里的关键词范围很广,可以看作是无限集合。如何确保无限集合的原始数据在寻址过程中不会被复制?不能保证吗?→哈希冲突!

    ①开放地址方法:

    所谓的开放地址方法是在冲突发生后,寻找下一个空的散列地址。只要哈希表足够大,就总能找到空的哈希地址。

    ②重散列法:

    重散列法也叫双散列法。有许多不同的散列函数。当冲突发生时,第二,第三,其他散列函数用于计算地址,直到没有冲突为止。虽然聚合不容易发生,但是计算时间增加了。

    ③链地址方法:(HashMap)

    链地址方法的基本思想:每个哈希表节点都有一个下一个指针。多个哈希表节点可以使用下一个指针来形成单向链表,并且分配给同一索引的多个节点可以通过单向链表来连接。

    五原门户网 版权所有© www.masiah.com.cn 技术支持:五原门户网 | 网站地图