【问题描述】
从键盘输入某班学生某门课的成绩(具体人数从键盘输入),试编程将分数按从高到低顺序进行排序输出。
【输入形式】
#用列表cj存放数据,gs表示数据个数(即列表长度)
n=int(input("请输入班级人数:"))
cj=[]
for i in range(n):
x=eval(input("请输入成绩:"))
cj.append(x)
print("排序之前的数据为:",cj)
【输出形式】
print("排序之后的数据为:",cj)
【样例输入】
【样例输出】
请输入班级人数:6
请输入成绩:66
请输入成绩:78
请输入成绩:90
请输入成绩:89
请输入成绩:60
请输入成绩:99
排序之前的数据为: [66, 78, 90, 89, 60, 99]
排序之后的数据为: [60, 66, 78, 89, 90, 99]
【样例说明】
【评分标准】
n=int(input("请输入班级人数:"))
cj=[]
for i in range(n):
x=eval(input("请输入成绩:"))
cj.append(x)
print("排序之前的数据为:",cj)
cj.sort()
print("排序之后的数据为:",cj)
9. 【竞赛】插入法排序
【问题描述】
从键盘输入某班学生某门课的成绩(具体人数从键盘输入,成绩数据从键盘输入),用插入法实现成绩从低到高排序输出。
【算法描述】
按递减顺序排序的插人排序法的基本思想是:若有N个元素的存放在列表A,依次检查列表中每个元素,将其插人其左侧已经排好序的列表中的适当位置。其算法如下:
(1) 第2个元素与列表中其左侧的第1个元素比较,如果A[0]> A[1],则交换位置,结果左侧2个元素排序完毕。
(2) 第3个元素依次与其左侧的列表的元素比较,直至插人对应的排序位置。结果左侧的3个元素排序完毕。
(3) 以此类推,进行第N- 1轮比较和交换后,列表中所有元索均按递增顺序排好序。
若要按递增顺序对列表排序,只要每次查找并交换最小值即可。
【输入形式】
(1)输入班级人数
(2)循环输入学生成绩
【输出形式】
(1)输出排序前成绩列表
(2)逐项输出排序后的结果。
【样例输入】
请输入班级人数:6
请输入成绩:66
请输入成绩:78
请输入成绩:90
请输入成绩:89
请输入成绩:60
请输入成绩:99
【样例输出】
排序之前的数据为:[66, 78, 90, 89, 60, 99]
排序之后的数据为:
60 66 78 89 90 99
【样例说明】
【评分标准】
n=int(input("请输入班级人数:"))
cj=[]
for i in range(n):
x=eval(input("请输入成绩:"))
cj.append(x)
print("排序之前的数据为:")
print(cj)
cj.sort()
print("排序之后的数据为:")
for i in cj:
print(i,end=" ")