高考分数排序之计数排序

您所在的位置:网站首页 学生分数怎么排序 高考分数排序之计数排序

高考分数排序之计数排序

2024-07-14 22:46| 来源: 网络整理| 查看: 265

     在社会上摸爬滚打了几年,见识了一些人和事,越发意识到高考的重要性。很多高校和企业在招聘时,都非常看重学历(甚至是第一学历),这种筛选条件很世俗,但从概率的角度来看,合情合理。

     高考成绩马上就要出来了,来聊聊与高考相关的算法问题。

     问题:参加全国高考数学考试的人数为n, 数学满分为k(k=150), 求数学分数的排序结果。要求:时间复杂度为O(n).

     对于排序算法,大家已经耳熟能详了,冒泡排序、选择排序、插入排序、希尔排序、堆排序、快速排序、归并排序,它们都是基于比较的排序。可以从数学上证明:基于比较的排序的时间复杂度最好能达到O(NlogN).

    显然,基于比较的排序,无法满足题目中的时间复杂度要求。那么,有没有时间复杂度为O(n)的排序算法呢?有的!比如计数排序,它依赖于计数,而非比较。

     如果直接提出计数排序,就太经验主义了,不利于能力的提高。对于困难问题,要学会分解和简化,然后各个击破。

     我们来简化上述问题:假设高考人数n=4, 数学满分k=3, 而且这4个考生的分数都不相同,试对考生分数进行排序。

     这个问题就很简单了,考生的分数取值只可能是0,1,2,3, 现在4个考生的分数都不相同,那么他们的分数的排序结果是0,1,2,3.

     显然,这是一种很特殊的情况:每个分数值都有且仅有1个人占据。其实,高考分数的实际情况是:某个分数值可能有c个人占据(0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3