京东2019校招笔试题-算法工程师 选择题知识点汇总

这篇博客总结了京东2019年校招算法工程师笔试中的重点知识点,包括哈夫曼树的概念、构建过程,循环链表的类型和特点,堆排序的原理及时间复杂度分析,以及SQL绑定变量的动态和静态区别。通过这些内容,读者可以加深对数据结构和算法的理解。
摘要由CSDN通过智能技术生成

刚刚结束了京东的笔试,发现很多知识点都不太了解,所以在这篇文章做一个汇总学习。

目录

1 哈夫曼树

2 循环链表

3 堆

3.1 大顶堆、小顶堆

3.2 堆排序

3.3 堆排序时间复杂度分析

4 唯一确定二叉树

5 SQL绑定变量

5.1 动态&静态SQL

5.2 绑定变量

6 递归和递推的区别

7 Python中range&xrange的区别

8 隐含狄利克雷分布(LDA)

9 ROC曲线


1 哈夫曼树

给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

参考百度百科

题目考察的要点是如何计算哈夫曼树的带权路径长度。

(参考文章:https://blog.csdn.net/u013011841/article/details/38226099

1)路径长度:一个结点到另一个结点的分支数目。如下图所示(根节点到D之间的路径长度为4):

2)树的路径长度:根节点到每一个结点的路径长度之和。如下图所示(树的路径长度为1+2+3+4+1+2+3+4 = 20):

3)带权路径长度:上图所示的例子中,带权路径的长度为5*1+15*2+40*3+30*4+10*4=315

4)哈夫曼树:带权路径长度最小的二叉树。

5)构造哈夫曼树

1、根据给定的n个权值{w[1],w[2],…,w[n]}构成n棵二叉树的集合F={T[1],T[2],…T[n]},其中每棵二叉树T[i];中只有一个带权为w[i]的根结点,其左右子树均为空。

2、在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值为其左右子树上根结点的权值之和。

3、在F中删除这两棵树,同时将新得到的二义树加入F中。

4重复2和3步骤,直到F只含一棵树为止。这棵树便是哈夫曼树。

用画图表示上面的步骤:

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值