欢迎来到天天文库
浏览记录
ID:26557311
大小:66.50 KB
页数:5页
时间:2018-11-27
《按成绩排名次的算法及动态演示程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、不改变数据位置的排序算法及动态演示宁宁1,张霞2(1.潍坊教育学院信息工程系,山东青州262500;2.潍坊教育学院数学系,山东青州262500)摘要:实际应用中经常遇到要求不改变原始数据的顺序而按关键字的大小对数据进行排序的情况,原有的一些经典排序算法不能直接用于解决该类问题。经过对选择排序算法进行研究,给出了基于选择思想的不改变数据位置而对数据进行排序的算法,并利用C#语言编程对该算法的实现过程进行了动态演示。关键词:排序;关键字;选择;定时器SortingAlgorithmWithoutChangin
2、gtheDataPosition&DynamicDemonstration1.FUNing2.ZHANGDong-xia(1.TheInformationEngineeringDepartmentofWeifangCollegeofEducation,QingzhouShandong262500)(2.TheInformationEngineeringDepartmentofWeifangCollegeofEducation,QingzhouShandong262500)Abstract:Inpractic
3、alapplication,thesituation,inwhichitrequiresalistingofthedataintheorderofthesizeofthekeywordswithoutchangingtheorderoftheoriginaldata,isanoften-metcase.Theoriginalclassicsortingalgorithmcannotbeuseddirectedtosolvethiskindofproblem.Thispaper,byresearchingin
4、totheselectivesortingalgorithm,putsforwardanalgorithmonthebasisofsortingthedatawithoutchangingthepositionsofthedata.ItalsogivesadynamicdemonstrationoftherealizationprocedureofthisalgorithmbyapplyingtheClanguageprogramming.Keywords:sorting;keyword;select;ti
5、mer1.问题的提出排序是计算机程序设计中一项基本的操作,在实际应用中,有很多情况下需要对数据按照某种方式进行排序后才能达到某种要求,因此,学习和研究各种排序方法是计算机工作者的重要课题之一。我们已经熟知的、比较成熟的排序算法有很多,比如冒泡排序、选择排序、插入排序、快速排序等,利用这些排序算法都能够使一组数据序列按照某个关键字排成需要的顺序。但这些经典的排序算法在对数据序列排序时,都要改变数据的原始顺序,也就是说,在一般情况下,排序问题的输入是n个数a1,a2,a3,……,an的一个序列,按照某个关键字对
6、初始序列进行重新排序后产生初始输入序列的一个重新排列:a11,a21,a31,……,an1,使得a117、下例所示:待排序数据:(596560480616560580498500540610)对应的名次:(35101o549872)对于实际工作中类似的排序要求,原有的一些基础排序算法就不能够直接应用,在具体的编程应用中可以在一些经典排序方法的基础上适当做一些改进,来解决具体的问题。本文基于选择排序算法的基本思想,给出了对不改变数据位置而对数据进行排序的有效算法,并利用C#语言编程给出了该算法实现的动态演示。2.算法实现假设要处理的数据存放在A数组中,为了我们算法实现的需要,我们定义A数组为A[2][n],其中A8、[0][0..n-1]存放需要确定名次的数据,A[1][0..n-1]存放排序后各数据对应的顺序,关键字值相同的数据的顺序是相同的。首先我们假定所有数据的原始顺序名次都是0,然后利用选择排序的思想一一确定每个数据对应的顺序,假定m为下一个待确定数据的顺序值,m的初值为1,其过程为:从所有还未确定顺序的数据中查找关键字值最大的数据,确定其顺序为m,同时查找与其关键字值相同的数据,并使其顺序与已经确定的数据相同,并记
7、下例所示:待排序数据:(596560480616560580498500540610)对应的名次:(35101o549872)对于实际工作中类似的排序要求,原有的一些基础排序算法就不能够直接应用,在具体的编程应用中可以在一些经典排序方法的基础上适当做一些改进,来解决具体的问题。本文基于选择排序算法的基本思想,给出了对不改变数据位置而对数据进行排序的有效算法,并利用C#语言编程给出了该算法实现的动态演示。2.算法实现假设要处理的数据存放在A数组中,为了我们算法实现的需要,我们定义A数组为A[2][n],其中A
8、[0][0..n-1]存放需要确定名次的数据,A[1][0..n-1]存放排序后各数据对应的顺序,关键字值相同的数据的顺序是相同的。首先我们假定所有数据的原始顺序名次都是0,然后利用选择排序的思想一一确定每个数据对应的顺序,假定m为下一个待确定数据的顺序值,m的初值为1,其过程为:从所有还未确定顺序的数据中查找关键字值最大的数据,确定其顺序为m,同时查找与其关键字值相同的数据,并使其顺序与已经确定的数据相同,并记
此文档下载收益归作者所有