会员号排序与二分查找积分

yc768212 程序题 共 个子题

题目说明

商超采用会员制,客户的消费信息如会员号、姓名和积分如下表所示,小方的爸爸想编写一个客户信息管理系统,其中有一个功能是:输入会员号,查询该会员的积分。

图片

小方知道后,就跃跃欲试,他首先从数据库读取客户信息到列表data中,其中data[i][0]存储第i条记录的会员号,data[i][1]存储第i条记录的姓名,data[i][2]存储第i条记录的积分;他首先将数组data中数据按会员号升序排序,然后用二分查找算法查找会员号对应的积分信息。代码如下,完善划线处的代码:

def bubble_sort(d):
    for i in range(len(d)-2):
        for j in range(len(d)-1,        ①        ,-1):
            if d[j][0] < d[j-1][0]:
                d[j],d[j-1] = d[j-1],d[j]
def bin_search(d, key):
    i,j = 0, len(d)-1
    while i <= j:
        m=(i +j)//2
        if        ②        :
            return m
        if key > d[m][0]:
            i = m+1
        else:
            j = m-1
    return -1
#从数据库读取会员信息存列表data中,代码略
data=[[8011,'张飞',12345],[8012,'李强',34512],[7812,'李好',45321]]
bubble_sort(data)
key = int(input('输入会员号:'))
m =         ③
if m!=-1:
    print (data[m][1],'先生/女士:您的积分是:',data[m][2])
else:
    print('该会员号不正确')

评分标准

  1. i(2分)

  2. d[m][0] == key(3分)

  3. bin_search(data,key)(3分)

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧