0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

面试工程师还担心算法题不会?常见的都在这里

h1654155971.7688 2018-02-28 16:04 次阅读


算法是比较复杂又基础的学科,每个学编程的人都会学习大量的算法。而根据统计,以下这18个问题是面试中最容易遇到的,本文给出了一些基本答案,供算法方向工程师或对此感兴趣的程序员参考。

1)请简单解释算法是什么?

算法是一个定义良好的计算过程,它将一些值作为输入并产生相应的输出值。简单来说,它是将输入转换为输出的一系列计算步骤。

2)解释什么是快速排序算法?

快速排序算法能够快速排序列表或查询。它基于分割交换排序的原则,这种类型的算法占用空间较小,它将待排序列表分为三个主要部分:

小于Pivot的元素

枢轴元素Pivot(选定的比较值)

大于Pivot的元素

3)解释算法的时间复杂度?

算法的时间复杂度表示程序运行完成所需的总时间,它通常用大O表示法来表示。

4)请问用于时间复杂度的符号类型是什么?

用于时间复杂度的符号类型包括:

Big Oh:它表示小于或等于目标多项式

Big Omega:它表示大于或等于目标多项式

Big Theta:它表示与目标多项式相等

Little Oh:它表示小于目标多项式

Little Omega:它表示大于目标多项式

5)解释二分法检索如何工作?

在二分法检索中,我们先确定数组的中间位置,然后将要查找的值与数组中间位置的值进行比较,若小于数组中间值,则要查找的值应位于该中间值之前,依此类推,不断缩小查找范围,直至得到最终结果。

6)解释是否可以使用二分法检索链表?

由于随机访问在链表中是不可接受的,所以不可能到达O(1)时间的中间元素。因此,对于链表来说,二分法检索是不可以的(对顺序链表或排序后的链表是可以用的)。

7)解释什么是堆排序?

堆排序可以看成是选择排序的改进,它可以定义为基于比较的排序算法。它将其输入划分为未排序和排序的区域,通过不断消除最小元素并将其移动到排序区域来收缩未排序区域。

8)说明什么是Skip list?

Skip list数据结构化的方法,它允许算法在符号表或字典中搜索、删除和插入元素。在Skip list中,每个元素由一个节点表示。搜索函数返回与key相关的值的内容。插入操作将指定的键与新值相关联,删除操作可删除指定的键。

9)解释插入排序算法的空间复杂度是多少?

插入排序是一种就地排序算法,这意味着它不需要额外的或仅需要少量的存储空间。对于插入排序,它只需要将单个列表元素存储在初始数据的外侧,从而使空间复杂度为O(1)。

10)解释什么是“哈希算法”,它们用于什么?

“哈希算法”是一个哈希函数,它使用任意长度的字符串,并将其减少为唯一的固定长度字符串。它用于密码有效性、消息和数据完整性以及许多其他加密系统。

11)解释如何查找链表是否有循环?

要知道链表是否有循环,我们将采用两个指针的方法。如果保留两个指针,并且在处理两个节点之后增加一个指针,并且在处理每个节点之后,遇到指针指向同一个节点的情况,这只有在链表有循环时才会发生。

12)解释加密算法的工作原理?

加密是将明文转换为称为“密文”的密码格式的过程。要转换文本,算法使用一系列被称为“键”的位来进行计算。密钥越大,创建密文的潜在模式数越多。大多数加密算法使用长度约为64到128位的固定输入块,而有些则使用流方法。

13)列出一些常用的加密算法?

一些常用的加密算法是:

3-way

Blowfish

CAST

CMEA

GOST

DES 和Triple DES

IDEA

LOKI等等

14)解释一个算法的最佳情况和最坏情况之间有什么区别?

·最佳情况:算法的最佳情况解释为算法执行最佳的数据排列。例如,我们进行二分法检索,如果目标值位于正在搜索的数据中心,则这就是最佳情况,最佳情况时间复杂度为0。

·最差情况:给定算法的最差输入参考。例如快速排序,如果选择关键值的子列表的最大或最小元素,则会导致最差情况出现,这将导致时间复杂度快速退化到O(n2)。

15)解释什么是基数排序算法?

基数排序又称“桶子法”,是通过比较数字将其分配到不同的“桶里”来排序元素的。它是线性排序算法之一。

16)解释什么是递归算法?

递归算法是一个解决复杂问题的方法,将问题分解成较小的子问题,直到分解的足够小,可以轻松解决问题为止。通常,它涉及一个调用自身的函数。

17)提到递归算法的三个定律是什么?

所有递归算法必须遵循三个规律

递归算法必须有一个基点

递归算法必须有一个趋向基点的状态变化过程

递归算法必须自我调用

18)解释什么是冒泡排序算法?

冒泡排序算法也称为下沉排序。在这种类型的排序中,要排序的列表的相邻元素之间互相比较。如果它们按顺序排列错误,将交换值并以正确的顺序排列,直到最终结果“浮”出水面。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67495

原文标题:有备无患!面试中经常被问到的18个算法题

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DDR硬件设计要点都在这里

    有的芯片还有VDDL,是给DLL供电的,也和VDD使用同一电源即可。电源设计时,需要考虑电压,电流是否满足要求,电源的上电顺序和电源的上电时间,单调性等。电源电压的要求一般在±5%以内。电流需要根据使用的不同芯片,及芯片个数等进行计算。
    发表于 12-18 15:56 416次阅读
    DDR硬件设计要点<b class='flag-5'>都在这里</b>

    硬件工程师面试时最常被问到的8个问题,看看你能答对几个

    晶振硬件工程师
    扬兴科技
    发布于 :2023年12月08日 18:21:15

    关于电源纹波的那些硬核内容都在这里了!

    电源纹波产生原因 我们常见的开关电源,是输入的交流电压经过整流、稳压、滤波等处理后得到的,虽然经过了处理,但直流电平上还是会有周期性和随机性的杂波信号,这些我们不需要的部分就是纹波。 开关电源的纹波
    的头像 发表于 12-07 06:32 320次阅读
    关于电源纹波的那些硬核内容<b class='flag-5'>都在这里</b>了!

    48V电源系统可恢复eFuse的设计秘诀,在这里

    48V电源系统可恢复eFuse的设计秘诀,在这里
    的头像 发表于 12-05 10:09 372次阅读
    48V电源系统可恢复eFuse的设计秘诀,<b class='flag-5'>在这里</b>!

    有关eFuse电子保险丝,你应该了解的技术干货,都在这里

    有关eFuse电子保险丝,你应该了解的技术干货,都在这里
    的头像 发表于 12-04 10:20 905次阅读
    有关eFuse电子保险丝,你应该了解的技术干货,<b class='flag-5'>都在这里</b>!

    J-Link 中的JTAG 接口:正确使用需要了解的注意事项,在这里

    J-Link 中的JTAG 接口:正确使用需要了解的注意事项,在这里
    的头像 发表于 12-01 16:01 708次阅读
    J-Link 中的JTAG 接口:正确使用需要了解的注意事项,<b class='flag-5'>在这里</b>!

    硬件工程师经典面试题详解

    硬件工程师经典面试题详解
    的头像 发表于 11-20 15:08 748次阅读
    硬件<b class='flag-5'>工程师</b>经典<b class='flag-5'>面试</b>题详解

    FPGA工程师需要具备哪些技能?

    工具主要分为三类:逻辑仿真、综合和布局布线。 在逻辑仿真方面,FPGA工程师需要熟悉Cadence、ModelSim和Mentor等工具,这些工具能够检查FPGA的设计正确性和符合性。在这个阶段
    发表于 11-09 11:03

    [HPM杂谈]你想要了解的先楫hpm_sdk开发都在这里系列 (二)

    一、概述在上一篇杂谈文章《[HPM杂谈]你想要了解的先楫hpm_sdk开发都在这里系列(一)》,大概分析了先楫通用单片机开发与其他国产单片机的开发差异,以及开发优劣势。刚好在这个月底,先楫官方发布
    的头像 发表于 10-12 08:18 966次阅读
    [HPM杂谈]你想要了解的先楫hpm_sdk开发<b class='flag-5'>都在这里</b>系列 (二)

    硬件经典面试100分享

    学电人员必备;硬件经典面试100;面向电子行业的面试基础问题,提前进入职业的大门
    发表于 09-27 06:23

    当不同工程师到了退休年龄,都在做什么?#搞笑 #内容过于真实 #电子 #工程师 #扬兴科技

    电子工程师扬兴科技
    扬兴科技
    发布于 :2023年09月01日 15:23:09

    英特尔 x 联想集团:未来的PC在这里诞生

    内新建的“先进系统创新实验室”。 在这里,两家公司的工程师们齐聚一堂,集思广益,以解决全球范围内最棘手的硬件和软件难题,打造更轻薄、更时尚、性能更强的笔记本电脑,满足消费者和企业的日常需求。 今年7月,英特尔和联想的高管,在位于联想上
    的头像 发表于 08-11 19:15 297次阅读
    英特尔 x 联想集团:未来的PC<b class='flag-5'>在这里</b>诞生

    热门推荐:硬件工程师必备工具

    ,以及长期可靠使用的至关重要的因素。 在这些过程中,对硬件工程师能否仔细检查出PCB和PCBA的设计隐患,排查潜在的生产风险,就显得尤为重要,那么本文将带大家深入了解这部分的内容。 一、协助硬件开发
    发表于 06-21 10:15

    【别找了全在这】硬件工程师经典笔试题集锦

    【别找了全在这】硬件工程师经典笔试题集锦
    发表于 06-09 22:45