python算法&二分查找法

import random

def random_list(n):
    result = []
    ids = list(range(1001,1001+n))
    a1 = ["","","","","","","","","","","","","","","","","","","","","","","",""]
    a2 = ["","","","","","","","","","","","","","","","","","","","","","","","""","","","","","",""]
    a3 = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]
    for i in range(n):
        age = random.randint(18,60)
        id = ids [i]
        name = random.choice(a1)+random.choice(a2)+random.choice(a3)
        dict = {"id":id,"name":name,"age":age}
        result.append(dict)
    return  result

'''
输入学生id,输出该学生在列表中的下标,并输出完整学生信息
'''
def bin_search(data_set,val):
    low = 0
    high = len(data_set) - 1
    while low <= high :
        mid = (low + high) // 2
        if data_set[mid]["id"] == val:
            return data_set[mid]
        elif data_set[mid]["id"] > val:
            high = mid - 1
        else:
            low = mid + 1
    return
userlist = random_list(100)
u = bin_search(userlist,1051)
print(u)
原文地址:https://www.cnblogs.com/pengpengzhang/p/10789136.html