题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

# 名字和分数分别记录,对分数进行冒泡排序,同时更改姓名的排序,这样不会对相同分数的人进行操作
n = int(input())
flag = int(input())
name = []
score = []
for i in range(n):
    line = input().split()
    name.append(line[0])
    score.append(int(line[1]))
# 按照sore冒泡排序,这样不会改变录入顺序
if flag == 0: # 从高到底
    for i in range(n - 1, 0, -1):
        for j in range(n - 1, n - i - 1, -1):
            if score[j] > score[j - 1]:
                score[j], score[j - 1] = score[j - 1], score[j]
                name[j], name[j - 1] = name[j - 1], name[j]
        
elif flag == 1:
    for i in range(n - 1):
        for j in range(0, n - 1 -i):
            if score[j] > score[j + 1]:
                score[j], score[j + 1] = score[j + 1], score[j]
                name[j], name[j + 1] = name[j + 1], name[j]
for i in range(n):
    print(name[i] + ' ' + str(score[i]))

全部评论

相关推荐

怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 14:35
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务