计算机排序算法及其在高考成绩排名中的应用

时间:2022-06-17 11:16:14 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
计算机排序算法及其在高考成绩排名中的应用

作者:王承恩

来源:《科技传播》 2018年第23



计算机排序算法是计算机软件编程的基础,也是实际生产生活中经常使用的算法。文章重点围绕典型算法展开叙述,并结合高考成绩排名进行程序步骤设计,以此拓展对计算机排序算法的理解和应用。

关键词 计算机;排序算法;高考成绩;排名

中图分类号 TP3 文献标识码 A 文章编号 1674-67082018224-0141-02

排序算法在计算机程序中具有举足轻重的地位,是计算机程序学习的基础。尤其是信息大爆炸的今天,大量的数据需要处理,而往往在处理数据的第一步是按照一定的规则对数据进行预处理,如按特定指标进行排序、或进行特定的归一化处理等[1-2]。一个好的排序算法不仅可以降低程序对硬件的要求,也会使得算法执行效率上大大提高。当然排序算法在实际日常的生产生活中也有很多应用,如对一些经济数据的统计、学生成绩的排名等,需要排序算法具有一定的稳定性,且能按照多指标进行一定规则的排序[3],如本文所要研究的高考成绩排序问题,在总分一致的情况下会依次按照语文数学、外语等相关科目成绩进行排序。

文章基于对计算机排序算法的理解,对几种经典的计算机排序算法机理的阐述,详细分析算法原理、算法过程,并以高考成绩排名为例,提出了成绩的排序规则,为进一步学习计算机程序奠定基础。

1 常见计算机排序算法[1-4]

排序算法作为计算机程序的基础,所谓排序是指对一串记录按照某个特定的关键字或者是规则进行递增(递减)排列操作,也就是要求待排序的记录按照特定要求规则进行排列。看似十分简单的问题,在众多领域起到十分重要的作用,尤其是近些年发展而来的大数据处理技术对排序算法的要求越来越高,一个好的排序算法是可以经受大量实例进行推理和检验的。

1.1 冒泡排序算法

1)冒泡法排序原理。所谓冒泡法排序其实就将小的数慢慢往上移动到数列的顶部,是一种最为基本的排序算法。基本原理是依次对相邻两个数字进行比较,如果不是按照特定规则,则交换两者的位置,并直至比较结束算遍历一次,同样进行重复执行,即可完成数列的排序。

2)冒泡法排序过程。如表1 所示,即从上到下依次比较相邻两个数,如果上面的比下面的大,便进行交换,否则维持顺序不变,这样便可将最大的数移动到最底部,依次重复进行即可实现冒泡法排序。



1.2 选择排序算法

1)选择法排序原理。如果说冒泡法排序相对机械,那么选择法排序则相对直接,所以也称为一种简单直观的排序算法。其基本原理是在待排序数列中直接查找最大(小)元素,并将其


排在该数列的起始位置,然后依次在剩余待排序数列中查找最大(小)元素排在已排列数列位置之后,以此重复执行,即可完成数列的特定规则排序。

2)选择法排序过程。如表2 所示,第一遍是找到1 最小,然后将1 3 位置互换,依次完成排序,看似比冒泡法排序简单,实际上选择法排序中需要依次对数据进行两两比较,但整体上是比冒泡法排序法更简单。



1.3 插入排序算法

1)插入法排序原理。插入法排序也属于直观排序算法,其基本原理是依次从上到下构建有序的数列,将待排序数字按照特定顺序从后向前扫描,找到相应位置进行插入排序。

2)插入法排序过程。如表3 所示,即首先检查2 3,则需要将2 排在最前面,接着检4 位置不变,再继续检查1,则需要将其排在最前面,依次完成插入即可。



1.4 归并排序算法

1)归并法排序原理。归并排序的基础是归并操作,采用分治法实现一个数列的各个子序列的排序,然后按照特定规则合并有序的子序列,进而得到最终的有序数列,通常都是按照两个有序子序列合成,这就是典型的2 路归并操作。

2)归并法排序过程。在表格上难以描述归并的过程,本质上是将数据分为两个子序列,如4 中,第一步将分为2 41 3 5,在分为子序列的过程中就已经按照顺序进行排列,然后从两个子序列中从小到大依次进行排序。



1.5 其他排序法

除了上述几种典型的排序算法,在实际应用还有其他的经典排序算法,如快速排序算法、堆排序算法,以及一些改进型排序算法,如希尔排序算法等,在实际应用中也十分广泛。

2 排序算法在高考成绩中的应用分析

2.1 应用背景介绍

在进入高中学习以来,学校为了督促学生、班级之间的学习效果比较,以便更好地进行自我检查,往往会对考试成绩进行排序。不仅如此,其实只要在实际测试考试中,往往都会按照结果进行排序。同样高考更是离不开对成绩的排名,对高考成绩的排名是十分必要的,对考生自己而言知道自己在全省处于何等水平,并按照该层次可以报考相应的学校,而对于高考招生录取更是重要,因为目前高考志愿都属于平行志愿,即各个志愿没有先后关系,但是录取投档是按照考试成绩进行投档。本质上就是按照高考成绩投递档案,让高校按照一定的先后顺序进行录取,直至录满为止,可见高考成绩的排名十分重要,往往会因为排名问题影响到个人的录取结果。

2.2 高考成绩中的排序算法设计




从上述可知,高考成绩排名十分重要,各省教育考试院也十分重视学生的排名规则制定,但各省的排名有个共同特点都是首先按照总分进行先后排名,但是一定总分相同,后续名次如何进行则各省略有不同。由于当前取消了高考加分,因此排序相对较简单一些,否则排序还会更加复杂,以下是高考成绩中典型的排序规则[5]

1高考成绩总分相同按单科成绩排名,只有总分相同且单科分数都相同时,才视为相同名( 排位分)

2)文史类的科目顺序依次为语文、外语、数学、文科综合;即总分相同,先看语文;若语文同分,则看外语;外语同分,再看数学;若再同分,则看文科综合。

3)理工类的科目顺序依次为数学、外语、语文、理科综合;即总分相同,先看数学数学同分,则看外语;若外语同分,再看语文;若再同分,则看理科综合。如果按照上述规则进行排序,在总分上排序则可以采用多种排序算法,几乎没有太大区别,但在总分一致情况下则在算法设计上可以选择冒泡法排序相对更加简单可靠。下面以高考理科成绩排序进行算法设计,相应的算法步骤如图1 所示。



3 结论

排序算法是计算机程序学习的基础,文章主要对几种典型的排序算法进行了阐述,对原理和过程进行了细致的分析。当然对排序算法的研究还有很多,如对算法的复杂度进行分析,复杂度又分为时间复杂度和空间复杂度,即时间消耗和内存消耗角度进行研究,还有对算法的稳定性分析,所谓稳定性分析是两个相同元素在排序前后相对位置有无变化,没有变化说明是稳定的排序算法,反之便是不稳定的算法。作为基本数据处理方法,在实际应用中经常使用,如本文重点结合自己对高考成绩排名的理解,从高考排名的需求角度分析了排名的重要性和严谨性,同时结合对排序算法的理解,以高考理科成绩的排名建立了程序设计步骤。

可以遇见,随着高考的进一步改革[6]高考成绩的排序规则也将越来越复杂,需要更精确更稳定的排序算法来保证高考成绩的严肃性,为高考录取规则奠定坚实的技术基础。


本文来源:https://www.wddqw.com/doc/8c47f0e669d97f192279168884868762cbaebb1d.html