综合实战1 #
- 排序算法的例题演练
- 排序算法的例题拆解
- 排序算法的例题实现
收获 #
学完本节内容,可以进一步理解排序算法的实现及应用。
排序算法的例题演练 #
题目描述:
在一次考试中,每个学生的成绩都不相同,现在知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。
输入:
第一行有两个整数,分别是学生的人数n(1~100),和k(1~n)。
其后有n行数据,每行数据包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出:
第k名学生的学号和成绩,中间用空格分开。
样例输入:
5 3
90788001 67.8
90788002 90.3
90788003 61
90788004 68.4
90788005 73.9
样例输出:
90788004 68.4
排序算法的例题拆解 #
1.学号录入,并使用数组存储
for i in range(len): nums[i]=int(input('请录入学生的学号:')) scores[i]=float(input('请录入学生的成绩:'))
2.使用冒泡排序法对成绩进行排序,并对对应学号进行操作
for j in range(len): for k in range(0,len-j-1): if scores[k]>scores[k+1]: scores[k],scores[k+1]=scores[k+1],scores[k] #交换分数 nums[k],nums[k+1]=nums[k+1],nums[k] #交换学号
排序算法的例题实现 #
len=int(input('请输入总共的学生数量:')) target=int(input('请输入需要查询的排名第k个学生序号')) #用冒泡排序法实现 nums=[0]*5 scores=[0]*5 #依次录入每个学生的学号和成绩 for i in range(len): nums[i]=int(input('请录入学生的学号:')) scores[i]=float(input('请录入学生的成绩:')) #print(nums,scores) for j in range(len): for k in range(0,len-j-1): if scores[k]>scores[k+1]: scores[k],scores[k+1]=scores[k+1],scores[k] #交换分数 nums[k],nums[k+1]=nums[k+1],nums[k] #交换学号 print(nums,scores) print(nums[target-1],scores[target-1])#检索从0开始
小结 #
复习巩固几种基础的排序算法
掌握并复现本节的例题
习题 #
- 习题1:掌握并实现学生信息录入程序
- 习题2:加入新的学生数据信息,并对新加入后的学生成绩进行排序后输出第一名的学号与成绩。新添加的学生数据信息如下:90788006 59;90788007 84;90788008 92