import random
def getTwoClosestElements(seq): #先进行排序,使得相邻元素最接近 #相差最小的元素必然相邻 seq = sorted(seq) #无穷大 dif = float('inf') #遍历所有元素,两两比较,比较相邻元素的差值 #使用选择法寻找相差最小的两个元素 for i,v in enumerate(seq[:-1]): d = abs(v - seq[i+1]) if d < dif: first, second, dif = v, seq[i+1], d #返回相差最小的两个元素 return (first, second)
seq = [random.random() for i in range(20)] print(seq) print(sorted(seq)) print(getTwoClosestElements(seq))