首页 > 其他分享 >华为2024嵌入式研发面试题

华为2024嵌入式研发面试题

时间:2025-01-17 23:37:12浏览次数:1  
标签:面试题 遍历 复杂度 右子 嵌入式 2024 算法 排序 root

01 你认为最好的排序算法是什么?
在实际的编程中,最好的排序算法要根据实际需求和数据规模来选择,因为每种排序算法都有其优势和劣势。以下是一些常见排序算法及其优缺点:

冒泡排序 冒泡排序是一种简单直观的排序算法,它的时间复杂度是 O(n^2)。虽然它的时间复杂度比较高,但它的实现方式简单,对于小规模数据排序是非常有效的。
快速排序 快速排序是一种常用的排序算法,它的时间复杂度是 O(nlogn)。它的实现方式比较复杂,需要递归实现,但是对于大规模数据排序效率很高。
归并排序 归并排序是一种时间复杂度为 O(nlogn) 的排序算法。归并排序的实现方式比较简单,但需要额外的内存空间来存储临时数据,对于数据量较大时,空间复杂度比较高。
堆排序 堆排序是一种时间复杂度为 O(nlogn) 的排序算法。它的实现方式比较简单,但是需要额外的内存空间来存储堆,对于数据量较大时,空间复杂度比较高。
因此,在实际开发中,根据数据规模和具体需求来选择最优的排序算法。如果数据规模较小,可以使用冒泡排序或插入排序等简单排序算法;如果数据规模较大,可以选择快速排序或归并排序等时间复杂度较低的算法。同时,也要考虑到算法的稳定性、内存占用等因素,综合评估选择最优的算法。

02 树的遍历方式有哪些?
树是一种非线性数据结构,其遍历方式主要有三种:前序遍历、中序遍历和后序遍历。具体实现方式可以使用递归或者栈来完成。

前序遍历:先访问根节点,然后遍历左子树,最后遍历右子树。

void preorder(TreeNode* root) {
if (root == nullptr) {
return;
}
// 访问根节点
cout << root->val << " ";
// 遍历左子树
preorder(root->left);
// 遍历右子树
preorder(root->right);
}
中序遍历:先遍历左子树,然后访问根节点,最后遍历右子树。

void inorder(TreeNode* root) {
if (root == nullptr) {
return;
}
// 遍历左子树
inorder(root->left);
// 访问根节点
cout << root->val << " ";
// 遍历右子树
inorder(root->right);
}
后序遍历:先遍历左子树,然后遍历右子树,最后访问根节点。

void postorder(TreeNode* root) {
if (root == nullptr) {
return;
}
// 遍历左子树
postorder(root->left);
// 遍历右子树
postorder(root->right);
// 访问根节点
cout << root->val << " ";
}
其中,TreeNode是一个二叉树节点的结构体或类,包括左子树指针、右子树指针和节点值。以上实现方式使用的是递归,也可以使用栈来完成遍历。

03 数据结构中图的概念
在数据结构中,图是由顶点和边组成的一种数据结构。它可以用来表示许多现实世界中的实体和关系,比如地图、社交网络和电路等等。在图中,顶点表示实体,边表示实体之间的关系。

图可以分为有向图和无向图。有向图中,边是有方向的,表示顶点之间的单向关系。无向图中,边没有方向,表示顶点之间的双向关系。

图还可以分为带权图和无权图。带权图中,每条边都有一个权值,可以表示实体之间的某种权重或距离等。无权图中,每条边没有权值,只表示实体之间的关系。

图的表示方式有邻接矩阵和邻接表两种。邻接矩阵是一个二维数组,其中行和列分别表示图中的顶点,数组元素表示相应顶点之间是否存在边。邻接表是由若干个链表组成的结构,其中每个链表表示一个顶点及其相邻的顶点。

标签:面试题,遍历,复杂度,右子,嵌入式,2024,算法,排序,root
From: https://www.cnblogs.com/niu5/p/18677786

相关文章

  • 2024/1 期末考試游記
    day0&day1&day2&day3前面忘了中間忘了後面忘了。day4對了下化學貌似ak了先不噴。數學秒掉了最後兩個大題非常激動,考完去找同學對答案然後獲得了挂掉選擇T3T5和填空T-1的好成績。\(-15\)預定,爆炸了。物理秒掉了所有題,回來一對,T-2算錯了(可能是,至今不知道......
  • pkuwc2024 游记
    由于去不了noiwc所以只有这个了。Day1试机后直接开赛感觉不好。发现试机题有一道交互。看来今年有交互。入场看t2,2分钟会了根号做法并相信可以通过。花了1h写加调获得了58pts。然后先想t1。一边猜结论一边玩样例。小样例玩错了导致过不了。中间去卡了一会t2。并没有卵用。......
  • 2024春秋杯冬季赛day1writeup_cyi
    ......
  • 202412 青少年软件编程等级考试C/C++ 二级真题答案及解析(电子学会)
    第1题逆行网上有个段子说:妻子在家听广播,听到某高速路上有一辆车在逆行,想到丈夫在那条高速上行驶,就打电话对丈夫说:“老公啊,你走的那条高速上有一辆车在逆行,你小心点。”她丈夫说:“何止啊!我看好几百辆车都在逆行!”现在我们查了一下高速公路上拍到的好几百辆车的时速,发现有的......
  • 2024~2025学年第一学期罗智市高一质量检测游记
    Day-1沉浸式背政治,感觉其他科目要完蛋了。Day0今天考化学、地理、政治、生物。?不是化学怎么好难,拼尽全力无法战胜,写不完一点,但是出考场之后发现化竞哥们也空了挺多,感觉这次能及格都有年段前\(50\)。地理选择题感觉挺简单,但是大题怎么考了和平精英,没玩过感觉吃大亏。政治......
  • ✨️ 2024年终总结 - 23岁正是折腾的年纪 从开发到产品 | 日本旅行 | 捣鼓项目 | 技术写
    序毕业一年多了,按照大家通常采用的“四舍五入”的算法,我已经是一个有两年经验的工程师了。在写这篇24年总结的时候,先回看了一下23年的总结,不得不感叹时间真的过得好快,明明感觉大学毕业也没多久,但竟然已经是一年多前的事情了。再回看24年,在工作和生活方面也找到了一个不错的......
  • 高级java每日一道面试题-2025年01月16日-框架篇[Mybatis篇]-说说Mybatis的缓存机制?
    如果有遗漏,评论区告诉我进行补充面试官:说说Mybatis的缓存机制?我回答:在Java高级面试中,MyBatis的缓存机制是一个重要的话题。MyBatis是一个流行的Java持久化框架,它提供了强大的数据库访问能力和灵活的SQL映射配置。为了提高查询性能并减少数据库访问次数,MyBatis引入了......
  • 【嵌入式人生】1.2025应届生四处碰壁的思考:若回到大一,我将这么干
    803.001 若笔者回到大一,将会按照如下方式过,根据一路以来找工作最后成功上岸的经验简单的总结为以下几点(以就业为标准,以走嵌入式道路为标准),想到还会继续更新  1.门门都要学好,争做好学生?大学学习的知识不足以让你达到社会上的就业标准,若不选择保研,与其花100%的精力让自......
  • SautinSoft PDF Focus .Net 2024.12.18
    SautinSoftPDFFocus.NetisapowerfultoolfordevelopersneedingtoconvertPDFdocumentsintovariousformatslikeWord(DOCX,RTF),Excel(CSV,XLS,XLSX),HTML,XML,text,andimages(JPEG,PNG,TIFF,GIF,Bitmap).ItsupportsallPDFversionsfrom......
  • 2024年微信公众号收到赞赏6487.50¥
    等了好久的微信公众号2024年创作回顾终于推送了,这是一个针对微信公众号创作的年终总结,如果没有记错的话应该是微信公众号推送年终总结的第二年。2023年的完整总结数据在这里:「我的2023年公众号创作数据分享」,在这份总结里我发现了许多有趣的数据,例如2023年全年一共发了37篇文章共......