zoukankan      html  css  js  c++  java
  • Python 二分法

    # coding = utf-8
    
    import random
    
    def Creat_Arr():
        arr = []
        for i in range(0,50) :
            arr.append(random.randint(1,100))
            i += 1
        arr.sort()   #排序
        return arr
    
    def Select_Key():
        key = random.randint(1,100)
        return key
    
    
    def BinarySearch(arr, key):
        # 记录数组的最高位和最低位
        start = 0
        end = len(arr) - 1
    
        if key in arr:
            # 建立一个死循环,直到找到key
            while True:
                 # 得到中位数
                 # 这里一定要加int,防止列表是偶数的时候出现浮点数据
                center = int((start + end) / 2)
                 # key在数组左边
                if arr[center] > key:
                    end = center - 1
                # key在数组右边
                elif arr[center] < key:
                    start = center + 1
                # key在数组中间
                elif arr[center] == key:
                    print(str(key) + "在数组里面的第" + str(center+1) + "个位置")
                    return arr[center]
        else:
            print("没有该数字!")
    
    if __name__ == '__main__':
        arr = Creat_Arr()
        key = Select_Key()
        print ('生成数组 : %s'%arr)
        print('生成key : %s'%key)
        BinarySearch(arr,key)
    

      

  • 相关阅读:
    <把时间当做朋友>读书笔记
    C语言-第12课
    C语言-第13课
    C语言-第11课
    python-第三课-字符串详解
    C语言-第10课
    C语言-第9课
    C语言-第8课
    C语言-第7课-enum和typedef分析
    C语言-第6课
  • 原文地址:https://www.cnblogs.com/Hamge/p/10761145.html
Copyright © 2011-2022 走看看