Python中的%d,Python中的sys.argv

  Python中的%d,Python中的sys.argv

  今天再看算法的时候看到了float(inf )的语句,让我眼前一亮。毕竟是初学者,新东西多,就去看看。

  正负无穷大在Python中可以用以下方式表示:float(inf )、Float(-inf )用inf做加法和乘法的简单算术运算还是会得到in f1 Float( inf )in F2 * Float( inf )inf,但是inf乘以0会得到NOT-A-NUMBER (nan): 0 * float (INF )如果用INF除INF以外的其他数除INF,会得到0 889/Float( INF )/Float( INF )等式:INF和INF相等-inf和-inf相等。

  好了,概念有了。再来看看我看到的题目。计算列表中差值最小的两个数。可以使用两层for循环得到O(n*n)的复杂度。如果要优化,可以考虑O(n)的一遍遍历算法:

  @ date: 2018-5-29 @作者:Jeremy Jone @关于使用inf 从随机导入randrangedef func(lst):lst . sort()dd=float( INF )# Infinite for I in range(len(lst)-1):x,y=lst [i],lst[I 1]if x==y:continue d=ABS(x-y)if d DD:#起初,所有的数字都会小于DD,所以xx,yy,dd=x,y在这里肯定是为第一次执行d #时,dd的无穷大值会变成(x-y)的绝对值D,相当于给dd的条件值赋一个返回值xx,yyif _ _ name _= _ _ main _ :L1=[rand range(10 * * 10)for I in range(100)]print(func

  inf的这个无限值的优点是传入的列表参数可能非常大。在不知道的情况下,如何给出初始值?有了inf这个值,第一次执行上面代码中的if d dd:语句时,不管d的值有多大,都一定会执行。把第一次得到的d值赋给DD,再判断的时候你就有一个真实的比较值了。

  真的python做的更好~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: