1. 已知一个递归算法的算法复杂度计算公式为T(n) = T(n/2) + n,则T(n)的算法复杂度为多少?
解:O(n)
T(n) = T(n/2) + n
= T(n/4) + n/2 + n
= T(n/8) + n/4 + n/2 + n
......
=T(1) + ... + n/16 + n/8 + n/4 + n/2 + n
当n取很大值时,T(n)就趋向于n
有一个通用公式:
详细推导点这里。
2. 小组赛,每个小组有5支队伍,互相之间打单循环赛,胜一场3分,平一场1分,输一场不得分,小组前三名出线。
平分抽签。一个队最少拿多少分就有理论上的出线希望。
解:2分
这题主要考察逻辑思维,以A队为研究对象:
当A队拿1分时,说明A的比赛结果是1平3败,显然没有出线希望
当A队拿2分时,说明A的比赛结果是2平2败,假设A、D、E均败给了B队、C队,A、D、E 3队之间互相打平,
这种情况下A、D、E三队均有理论上的出线希望。