公共題算法
選擇題(每題5分)數據結構
1. 若一棵二叉樹具備10個度爲2的結點,則該二叉樹的度爲0的結點個數是( )spa
A:9 B:11 C:12 D:不肯定 3d
註解by Snowwolf_Yang:對於一棵二叉樹,從只有一個根結點開始,每增長一個度爲1的結點,度爲0(葉子)個數不變,每增長一個度爲2的結點,度爲0的個數增長1,因此D0 = D2 + 1blog
2.下列排序算法中,其時間複雜度和記錄的初始排列無關的是( )排序
A:插入排序 B:堆排序 C:快速排序 D:冒泡排序 遞歸
3.已知中序遍歷的序列爲abcdef,高度最小的可能的二叉樹的葉子是( )阿里巴巴
A:ace B:acf C:adf D:cdf 二叉樹
4.參加百年阿里培訓的n位同窗結伴去西湖旁邊爲遊人指路,兩人一組,他們打算先讓體重之和剛好爲102公斤的同窗一組,請給出一個算法找到這樣的組合,或者肯定他們中不存在這樣的組合,其中最優的算法時間複雜度爲?(假設體重均爲整數) ( )搜索
A:O(log(n)) B:O(n) C:O(n log(n)) D:O(n^2)
註解by Snowwolf_Yang:
5.衆所周知數據結構中很是基本的樹結構包括二叉查找樹(BST)。當咱們把以下序列:10,5,19,4,13,7,6,3,1按順序創建一棵BST時,樹的最大深度是?(令根節點深度爲0,執行不進行平衡的基本插入) ( )
A:5 B:4 C:3 D:2
註解by Snowwolf_Yang:
二叉排序樹(Binary Sort Tree)又稱二叉查找樹,亦稱二叉搜索樹。 它或者是一棵空樹;或者是具備下列性質的二叉樹: (1)若左子樹不空,則左子樹上全部結點的值均小於它的根結點的值; (2)若右子樹不空,則右子樹上全部結點的值均大於它的根結點的值; (3)左、右子樹也分別爲二叉排序樹;
插入過程:把第一個結點作根,插入時先和根比較,若是大於根,那麼遞歸左子樹,若是大於根遞歸右子樹,直到葉子結點,若是途中有遇到相同時,返回結點已存在。到葉子結點時,若是插入值比葉子大,則添加爲葉子右結點,不然左結點。
6.阿里巴巴啓用了新的辦公大廈,這裏的一切都充滿了現代感;工程師們打算在娛樂區用大小相等的圓形材料分割出一些空間,使用A,B,C三個圓形材料,最多能夠將空間分爲八個區域(包括圓形之外的區域),若是給你五個圓形材料,你最多能夠幫助工程師們分出多少個空間? ( )
A:20 B:22 C:26 D:32
註解by Snowwolf_Yang:這些問題的推導方法是遞推,先看多加一個圓後增長了多少個交點,對圓來講多一個交點就多分了一塊區域,而在K個圓上再加一個圓至多能增長2K個交點,因此一個圓分2部分,2個圓分2+1*2,三個圓分2+1*2+2*2,N個圓分2+1*2+2*2+……+(n-1)*2= n(n-1)+2部分