• Python9-递归函数-day17


    # 计算方法:人脑复杂,计算机简单
    #查找:找数据
    #排序
    #最短路径
    #我们学习的算法都是过去时
    #要了解基础的算法,才能创造出更好的算法
    #不是所有的事情都能套用现成的方法解决的
    # 有些时候会用到学过的算法只是来解决问题
    #二分查找算法 必须处理有序的列表

    l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
    # def find(l,aim):
    #     mid_index = len(l) // 2
    #     if l[mid_index] < aim:
    #         new_l = l[mid_index + 1:]
    #         find(new_l,aim)
    #
    #     elif l[mid_index] > aim:
    #         new_l = l[:mid_index]
    #         find(new_l,aim)
    #     else:
    #         print('get it',mid_index,l[mid_index])
    #
    # find(l,66)
    
    l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
    # def find(l,aim,start=0,end=None):
    #     end = len(l) if end is None else end  #end len(1)  24
    #     mid_index = (end - start) // 2 + start  #计算中间值  12 +0 =12
    #     if l[mid_index] < aim:     #l[12] < 44    41 <44
    #          find(l,aim,start =mid_index + 1,end=end)  #find(1,44,start=13,end=24)
    #     elif l[mid_index] > aim:
    #         find(l,aim,start =start + 1,end=mid_index-1)
    #     else:
    #         print('got it',mid_index,aim)
    # #第二次
    # def find(l,aim,start=0,end=None):   #1,44,start=13,end=24
    #     end = len(l) if end is None else end  #end=24
    #     mid_index = (end - start) // 2 + start  #计算中间值  24-13 =11 /2 =5 +13=18
    #     if l[mid_index] < aim:     #l[18] < 44   67 <44
    #          find(l,aim,start =mid_index + 1,end=end)
    #     elif l[mid_index] > aim:   67 >44
    #         find(l,aim,start =start + 1,end=mid_index-1)#find(1,44,start=13,end=17)
    #     else:
    #         print('got it',mid_index,aim)
    # #第3次
    # def find(l,aim,start=0,end=None):   #1,44,start=13,end=17
    #     end = len(l) if end is None else end  #end=17
    #     mid_index = (end - start) // 2 + start  #计算中间值  17-13 =4 /2 =2 +13=15
    #     if l[mid_index] < aim:     #l[15] < 44   55 <44
    #          find(l,aim,start =mid_index + 1,end=end)
    #     elif l[mid_index] > aim:   55 >44
    #         find(l,aim,start =start + 1,end=mid_index-1)#find(1,44,start=13,end=14)
    #     else:
    #         print('got it',mid_index,aim)
    # #第4次
    # def find(l,aim,start=0,end=None):   #1,44,start=13,end=14
    #     end = len(l) if end is None else end  #end=14
    #     mid_index = (end - start) // 2 + start  #计算中间值  14-13 =1/2 =0 +13=13
    #     if l[mid_index] < aim:     #l[13] < 44   42 <44
    #          find(l,aim,start =mid_index + 1,end=end)#find(1,44,start=14,end=14)
    #     elif l[mid_index] > aim:   55 >44
    #         find(l,aim,start =start + 1,end=mid_index-1)
    #     else:
    #         print('got it',mid_index,aim)
    #第5次
    def find(l,aim,start=0,end=None):   #1,44,start=14,end=14
        end = len(l) if end is None else end  #end=14
        if start <= end:
            mid_index = (end - start) // 2 + start  #计算中间值  14-14 =0/2 =0 +14=14
            if l[mid_index] < aim:     #l[14] < 44   43<44
                 return find(l,aim,start =mid_index + 1,end=end)#find(1,44,start=15,end=14)
            elif l[mid_index] > aim:
                return find(l,aim,start =start + 1,end=mid_index-1)
            else:
                return mid_index,aim
        else:
                return 'not get it'
    l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
    
    ret = find(l,66)
    print(ret)
  • 相关阅读:
    也URL Rewriter
    一窝蜂的分类信息
    再思考:分类信息的前途
    Ajax的一个体验:Ajax.NET A free library for the Microsoft .NET Framework
    EonerCMS——做一个仿桌面系统的CMS(十三)
    关于IE6、7、8下实现盒阴影的几个注意点
    EonerCMS——做一个仿桌面系统的CMS(十附最新源码)
    EonerCMS——做一个仿桌面系统的CMS(十一)
    用cloudzoom做一个仿淘宝的宝贝放大镜查看功能
    剑走偏锋——用css制作一个三角形箭头
  • 原文地址:https://www.cnblogs.com/zhangtengccie/p/10342378.html
Copyright © 2020-2023  润新知