内容正文:
hthon:编程--4排序算法
微项日4
用排序算法进行数据整理
学习目标
学习活动
过程与目标
核心问题
1通过计算选手得分活动,查找最大数、
最小数,了解如
何进行数据比较解决如何比较数据大小问题。
2通过为选手排名次活动,观察冒泡排序的基本过程,探
索序列的生成过程,理解冒泡排序中的数据交换如何实
现。
项目实施
学校举行歌手大奖赛,
需要设计一个程序,对选手比赛成绩进行处理
比赛规则是满分为10分且评委打分均为整数每位选手最终得分为去掉1个最
高分和1个最低分后的平均分。评委共有12位,参赛选手10位,如何计算并
显示所有选手最终得分排出名次?
活动
计算选手得分
问题分析:
首先输入评委打分,
接着通过判断找到最大数、最小数,最后针对有效打分求解平均数,
获得选手得分。需要将12位评委打分一次性录人,分数之间用英文逗
号分隔。
按Enter键,结束输入。
参照下列代码完成给一个选手的打分录人程序。
1.输入评委打分
#!/usr/bin/env python3
a=input(("输入评委打分,并以英文逗号分隔:”,spit(",门输入数值以逗号分隔
b=[int(x)for x in a]
#将字符串型的得分转换为数字型数据(整数)并存储
print(评委打分为:”,a)
#显示未转换类型的数据
print((评委打分为:”,b)
#显示转换类型后的数据
3.计算选手平均分
根据规则,从所有评委打分之和中减去最高分与最低分,然后除以有效打分个数求得该选手的最终得分。
#!/usr/bin/env python3
a=input(输入评委打分以英文逗号分隔:")split(,两
b=[int(x)for xin a]
d=b[O]
x=b[O]
for i in b:#遍历列表中所有数值进行判断
f>d谢
d=i
ifi<x:
X=i
m=sum(b)d-x#求和,并减去最高分、最低分
n=len(b)2求有效分的个数
k=m/n#求平均
print(选手得分:",b)
print(去掉一个最高分,d
print("去掉一个最低分:",
print(最终平均得分:",k灯
活动三.〕为选手排名次
解决问题:
按照得分高则名次靠前的原则,需要将10位
选手的最终得分按照从高到低进行排序。计算机
如何完成对选手成绩的排序呢?
1.冒泡排序算法的执行过程
在程序设计中,冒泡排序是比较常见的一种
排序算法。下面,一起来探究该算法的实现过程
1.冒泡排序算法的执行过程
所谓冒泡排序,就是从初始位置开始,每次
对相邻两个数据进行比较,如顺序无误保持位置
不变,顺序错误则交换位置,不断进行下一次比
较,直至数据顺序调整完毕。