码迷,mamicode.com
首页 > 其他好文 > 详细

广东清算中心笔试题

时间:2015-03-20 21:51:51      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

1、完全二叉树(Complete Binary Tree)的概念
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
一棵二叉树至多只有最下面的两层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,则此二叉树成为完全二叉树。
 
2、排序算法,对一个个数很大的数组进行排序。如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
只需要用一个数组记录每个数字出现次数就可以了。
假定你的数字范围在0到65535范围之内,定义一个数组count[65536]这个空间是常量,和n无关,所以是O(1) 
那么对于每个这个数字,都做在count中记录一下
100 => count[100]++
200 => count[200]++
300 => count[300]++
119 => count[119]++
0 => count[0]++
6 => count[6]++
最后,遍历一边所有这些数字就可得到0~65535每个数字的个数(在count数组中),然后再顺序遍历count数组,count[n] = m,则输出m个n,(比如说有count[3] = 2, 那么说明有2个数字3),依次输出,最后可得结果。第一次遍历是O(n),第二次遍历是O(1)
为常量,所以最后的时间复杂度为O(n),而空间复杂度为O(1)
 
3、判断程序的安全性和错误
 

广东清算中心笔试题

标签:

原文地址:http://www.cnblogs.com/lujun/p/4354609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!