您当前的位置:首页 > 计算机 > 编程开发 > Python

Python寻找给定序列中相差最小的两个数字

时间:12-24来源:作者:点击数:

Python寻找给定序列中相差最小的两个数字

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))

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门