《算法導論》第三版9.1-1
把n個元素分成一對對,每一對進行一次比較得出一個較小值,這是第一輪篩選,以此類推,一共進行
具體實行起來,要構造一個二叉樹,第一輪篩選作爲底層結點,以此類推,那麼根就是最小元素。構造完數之後,再沿着有最小元素的脈絡,挑選第二小元素。
問題是,我在stack overflow上看到一段python代碼,可以在
def second_smallest(numbers):
m1, m2 = float('inf'), float('inf')
for x in numbers:
if x <= m1:
m1, m2 = x, m1
elif x < m2:
m2 = x
return m2
So,這是什麼鬼?
代碼鏈接http://stackoverflow.com/questions/26779618/python-find-second-smallest-number