• 二分查找和杨辉三角


    确定该期间的中间位置K
    (2)将查找的值T与K比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:
    K>T 由数组的有序性可知;故新的区间为[T,L[-1]]
    K<T 类似上面查找区间为0-T。每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间缩小一半。递归找,即可。

    '''
    二分法''' #用递归的方法不断搜索 # L=[1,2,10,30,33,99,101,200,301,311,402,403,500,900,1000] #从小到大排列的数字列表 # # def find(x,y): # k = len(y) # m =k // 2 # print(m) # o = y[m] # print('oooo',o) # if x > o: # y = y[m:] # if len(y) == 2: # exit(y) # find(x,y) # elif x < o: # y = y[:m] # if len(y) == 2: # exit(y) # # find(x,y) # else: # print('找到了') # # find(3,l) # 结果: # [2, 10] # 7 # oooo 200 # 3 # oooo 30 # 1 # oooo 2
    生成器的send方法
    '''yield from'''
    # import time
    # def inner():
    #     for i in range(5):
    #         yield i
    #
    #
    # def quot():
    #     g_inner = inner()
    #     while True:
    #         print(time.time())
    #         res =g_inner.send(None)       #在这里的send(None)就是相当于next(g_inner)
    #         print('===',res)
    #         print(time.time())
    #         yield res
    #
    # q_outer = quot()
    # while True:
    #     try:
    #         print(q_outer.send(None))
    #     except StopIteration:
    #         break
    
    
    
    
    '''杨辉三角'''
    # def triangles(max):
    #     L = [1]
    #     while True:
    #         yield (L)  # generator生成器会存下这个L
    #         if len(L) >= max:
    #             break
    #         L.append(0)  # 注意:每次产生一列的时候,紧接着就是在这一列的后面追加一个0元素以作为新的列的基础
    #         L = [L[n - 1] + L[n] for n in range(len(L))]
    #
    #
    # for i in triangles(8):
    #     print(i)
  • 相关阅读:
    three.js模型
    three.js贴图
    three.js材质
    three.js自定义形状
    border
    虚拟主机Dede程序安装
    万网虚拟主机目录
    ConcurrentHashMap
    Oracle中select使用别名
    单例模式
  • 原文地址:https://www.cnblogs.com/z18271397173/p/9531771.html
Copyright © 2020-2023  润新知