Python根据成绩算名次

来源: 哇谷im原创 2020-08-23 20:59:22

题目:根据成绩算名次(20174月浙江省普通高校招生选考科目考试17)

难度:3星      有趣:3星     有用:5星   

分类:排序

描述:小王编写了一个依据成绩计算名次的VB程序,成绩为0100之间的整数。算法的基本思想:先统计每个分数的个数,然后按照分数从高到低依次计算每个有效分数(该分数的个数不为0)对应的名次,分数相同时名次并列。最高分为第1名,该分数的名次与个数之和为下一个有效分数的名次,以此类推。程序用数组A存放每个分数对应的个数,数组B存放每个分数对应的名次。例如,下表中最高分1002个,并列第1名,则分数96的名次为分数100的名次加上分数100的个数,即第3名。

程序运行时,学生数据显示在列表框List1中,单击“计算”按钮Command1,计算结果显示在列表框List2中,程序运行界面如图所示。

实现上述功能的VB程序如下,请回答下列问题:

1)如表所示,若分数93的个数为2,则该分数对应的名次为_____________

2)请在划线处填入合适的代码。

 答案 (1)7

(2)ads=sx

A(sScore(i))=A(sScore(i))+1

mc=A(i)+B(i) mc=mc+A(i)

 算法分析:

高中VB算法题的一个重要特征就是题目会把算法思路完整地呈现给考生,考生只要根据算法分析去理解代码就行了。

首先来理解数组A的含义,数组A用来存储每个分数的个数,其每个元素的下标和值分别对应某个分数和该分数出现的次数,例如,若A(60)=5,则代表有5个学生考了60分;若A(70)=4,则代表有4个学生考了70分。

因此计算每个分数的个数,就是累计数组A中下标为sScore(i)的元素值,这是经典的桶排序思想。

在计算每个分数对应的名次时,是先规定最高分为第1名,即初始化mc = 1;然后从高到低遍历每一个分数,设置该分数的名次B(i) = mc;接着更新下一个有效分数的名次mc=A(i)+B(i)。如此循环处理每一个有效分数。

本算法的巧妙之处在于它不是直接存储每个学生的名次,而是存储每个分数对应的名次,最后根据学生成绩输出其名次。这样只需一重循环就可以完成计算,大大提高了效率。

         下面我们用Python语言来完成这道题目。

描述:根据成绩算名次。已知元组t存储了若干个学生的成绩,成绩为0100之间的整数。

请编写函数返回各学生的名次,其中最高分为第1名,成绩相同则名次也相同。

要求时间复杂度为O(n),也可以理解成只能使用一重循环。

函数名:ranking(t)

参数表:t -- 存储了学生的成绩的元组。

返回值:返回一个列表,其元素值为相同下标的元素在元组中的排名。

示例:对于元组t = (3,2,2,4,3,5),返回[3,5,5,2,3,1]

课后思考:

本题在计算每个分数的个数时,采用了经典的桶排序思想,那么什么是桶排序呢?

聪明的你可以先去查查相关资料,我们在下一篇文章中再和大家详谈。

如果觉得自己已经理解桶排序思想了,可以试试下面这道题目。

描述:找出字符串中第一个只出现一次的字符

函数名:first_one(s)

参数表:s -- 被访问的字符串。

返回值:返回第一个只出现一次的字符,如果不存在返回"No"

示例: s="asdfasdfo",返回"o"






----------------------------------------------

相关文章

即时通讯

即时通讯im

什么是私有云?

im 移动社交聊天APP

Im通讯有哪些APP

如何选择即时通讯软件?

推荐一款好用的企业办公聊天APP

使用企业IM要不要收费

IM软件要多少钱?‍‍有必要定制么?

有没有必要开发企业聊天APP

企业IM是什么,有什么使用优势?

哇谷IM有什么特点,为什么很多企业在使用?

即时通讯私有化部署是什么?

企业即时通讯的使用价值有哪些

企业聊天APP有什么作用,可以带来哪些便利?

企业即时通讯软件支持多设备登陆吗?

购买海外云服务器注意避免这些误区

怎么样正确认识海外云服务器

员工上网影响效率 关闭外网做内网必备聊天APP

即时通讯软件是否具有聊天回执的功能?

即时通讯聊天APP是否支持消息漫游

即时通讯软件可以发送表情和语音么?

即时通讯软件支持群聊和音视频功能么?

有微信有QQ,为啥还要定制即时通讯软件?

IM软件功能丰富 随心所欲定制您需要的功能

盘点全球几大即时通讯软件

介绍两款国外大佬级别的即时通讯APP

原创互联网未来世界企业政府通讯APP办公节约成本类似马云思维-哇谷IM

免费十万SEO优化超级外链工具各大站长工具

敲黑板,企业聊天APP这些事项一定要注意!

JM沟通优势有哪些,安全性怎么样?

JM沟通app即时通讯聊天系统功能介绍

jm沟通 企业即时通讯有什么特点,为什么受欢迎?

JM沟通实现零距离交流 成现代企业办公的必备

即时通讯私有化完整版源代码分析后台数据库说明

即时通讯IM融云世界

新的市场叫板环信、融云、腾讯云!开源版IM即使聊天工具

公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?

IM云系统即时通讯公有云、私有云、企业云、海外云-哇谷IM团队

2.0哇谷即时通讯系统正式上线适合大型项目运营超稳定性

哇谷科技JM沟通即时通讯内核升级新版哇谷2.0即将上线

im即时通讯社交软件APP红包技术分析(五):微信红包、聊呗红包、诚信红包、高并发技术

im即时通讯-微信红包、支付宝红包、聊呗红包、诚信红包、谈功能逻辑、容灾、运维、架构等。Q红包

更多文章

.

 企业即时通讯服务 | 商用红包功能构架 | 哇谷IM首页 | JM沟通IM下载 | IM功能与价格 | 即时通讯动态 | 热门动态 | 关于哇谷 |联系我们