zoukankan      html  css  js  c++  java
  • python 二分查找法

    @source_data:数据集
    @binary_num:要查找的数
    @mid:中间数的键值
    def binary_search(source_data,search_num):
        #传入数据集计算中间数键值
        mid = int(len(source_data)/2)
        #确认数据集的数据个数大于1
        if int(len(source_data)) >1:
            #判断要找的数与中间数比较,如果中间数大于要找的数,要找的数在中间数左边
            if source_data[mid] > search_num:
                # 显示数据的大概位置
                print("search_num in left [%s]" % source_data[mid])
                #重复判断查找
                binary_search(source_data[:mid], search_num)
            #如果中间数小于要找的数,要找的数在中间数右边
            elif source_data[mid] < search_num:
                #显示数据的大概位置
                print("search_num in right [%s]" % source_data[mid])
                # 重复判断查找
                binary_search(source_data[mid:], search_num)
            else:
                # 中间数正好等于要找的数,则打印出来
                print("find search_num",source_data[mid])
        else:
            #如果等于1输出提示信息
            print("can't find search_num")
    
    if __name__== '__main__':
        data = [1,2,3,4,5,6,7]
        print(data)
        binary_search(data,4)
    技术让生活更优质!
  • 相关阅读:
    UIKit, AppKit, 以及其他API在多线程当中的使用注意事项
    BOZJ-2590 优惠券
    P3620 [APIO/CTSC 2007] 数据备份
    矩阵乘法与快速幂
    CodeForces
    AtCoder
    CodeForces
    考试成绩和学号的(结构体)排序
    CodeForces
    Atcoder Beginner Contest 092 —— C题
  • 原文地址:https://www.cnblogs.com/chennuo/p/6402727.html
Copyright © 2011-2022 走看看