zoukankan      html  css  js  c++  java
  • python 二分法实现

    # -*- coding: utf-8 -*-
    
    def BinarySearch(arr, key):
        # 记录数组的最高位和最低位
        min = 0
        max = len(arr) - 1
    
        if key in arr:
            # 建立一个死循环,直到找到key
            while True:
                # 得到中位数
                # 这里一定要加int,防止列表是偶数的时候出现浮点数据
                center = int((min + max) / 2)
                # key在数组左边
                if arr[center] > key:
                    max = center - 1
                # key在数组右边
                elif arr[center] < key:
                    min = center + 1
                # key在数组中间
                elif arr[center] == key:
                    print(str(key) + "在数组里面的第" + str(center) + "个位置")
                    return arr[center]
        else:
            print("没有该数字!")
    
    
    if __name__ == "__main__":
        arr = [1, 5, 9, 12, 26, 45, 49, 60, 63, 77, 81, 93]
        while True:
            key = input("请输入你要查找的数字:")
            if key == " ":
                break
            else:
                BinarySearch(arr, int(key))
    
  • 相关阅读:
    Constructor构造方法
    overload重载
    static关键字
    this关键字
    继承
    ORACLE数据库 常用命令和Sql常用语句
    常见单词
    L贪心基础
    J贪心
    K贪心
  • 原文地址:https://www.cnblogs.com/gmhappy/p/11863953.html
Copyright © 2011-2022 走看看