APP下载

数据结构常用排序算法总结

2020-03-30代昌宏

科学导报·学术 2020年10期
关键词:数据结构总结

代昌宏

摘 要:数据结构排序内容是计算机专业学生学习的重难点内容,常用的排序有冒泡排序、选择排序和插入排序,不少大学生在学习过程中存在理解不清晰、学习不精准等问题,本文将分别对冒泡排序、选择排序和插入排序等三种排序的概念、定义、实现原理等内容,进行简要的阐述,还希望可以为大学生更加有效的学习该部分内容提供思路指引和经验借鉴。

关键词:数据结构;排序算法;总结

排序算法是数据结构学科学习的核心内容,但该部分内容学习难度系数相对较大,不少大学生在学习起来存在一定的难度,使得其最终的学习效果受到了一定的影响,还需要积极的提升对该模块内容的重视程度,并积极的摸索数据结构常用排序算法,以进一步的提升大学生对该部分内容的学习效能。本文将就数据结构常用排序算法进行总结,以让学生更好的理解数据结构的常用排序算法,提升学生的学习质量。

一、冒泡排序

冒泡排序是一种稳定排序算法,是数据结构排序的最常用算法之一,有效的学习这种排序方法对于学生更好的进行排序和算法设计具有积极的促进作用,应该引起我们的重视,以下将对该排序算法进行具体阐述。其一,实现原理。所谓冒泡排序就是指将小的元素往前调整或者将大的元素往后调整的一种具体的数据结构交换排序方法。例如,我们以从小到大为例进行展示,在每一轮的排序过程中都要将相邻的两个数据(关键码)进行对比,如果遇到前面的数据比后面数据大的情况,那么就进行第二轮交换,相反,如果出现遇到前面的数据比后面数据小的情况,则不进行操作,如果遇到最小的数据,则会该数据会像一个“气泡”一样,被推到该数组的最顶端,冒泡排序因此得名,而根据上面的定义我们可以知道在具体每一轮的对比过程中都能够固定当前对比数据中的一个最小值,且将其放置在最前面,如果对比的数据相同,则进行下一轮,如果没有所要对比的数值,则要通过前面的两两结合将其相邻起来,但不进行交换,因而又称冒泡排序是一种稳定性排序。其二,核心代码如下:

template

void bubsort(E A[],int n){

for(int i=0;i

for(int j=n-1;j>i;j--){

if(A[j]

swap(A,j,j-1);7 } 8 } 9 }

二、選择排序

选择排序包括简单选择排序和堆排序,也是数据结构常见的一种排序方法,相对于冒泡排序,对于排序同样的内容,虽然会执行同样的对比次数,但是具体的交换次数却显然有所减少,因而该排序方法在执行速度上比冒泡排序方法要更快一些。

其一,实现原理。我们以简单选择排序为例对其实现原理进行阐述。在将要排序的一组数据中,选择其中最小(或者是最大)的一个数与在第一位置的数据进行交换,紧接着在剩下的数据当中再找出最小(或者是最大)的数据与第二个位置的数据进行交换,这样依次进行查找、对比和交换,直到倒数第二个数和倒数第一个数据进行比较为止。其二,案例展示。

初始数据:3,1,5,7,2,4,9,6

第一次对比:1,3,5,7,2,4,9,6

第二次对比:1,2,5,7,3,4,9,6

第三次对比:1,2,3,7,5,4,9,6

第四次对比:1,2,3,4,5,7,9,6

第五次对比:1,2,3,4,5,7,9,6

第六次对比:1,2,3,4,5,6,9,7

第七次对比:1,2,3,4,5,6,7,9

第八次对比:1,2,3,4,5,6,7,9

大家可以看到,经过七次的对比,最终的排序结果为:1,2,3,4,5,6,7,9,从而借助简单排序法实现了将数据由小到大进行排列的目的.

三、插入排序

插入排序又包括直接插入排序(稳定排序)和希尔排序(不稳定排序),也是一种较为重要的排序方法,在算法设计中的应用也比较广泛,大学们应当引起重视。以下将以直接插入排序为例进行阐述。

其一,实现原理。所谓直接插入排序,是指将一个数据(记录)直接插入到一个已经排列好的有序序列中,记录数增加1的有序表的一种排列方式,具体实现原理是首先将有序数组的第一个数据看作是一个有序的子列表,之后从第二个数据进行插入,这样一直到整个序列完全有序为止。其二,案例展示。

void insertSort(int array[],int n){

int i,j,temp;

for(i=1;i

if(array[i]

temp=array[i];

for(j=i;array[j-1]>temp;j--){

array[j]=array[j-1];}

array[j]=temp;}

当然,除了以上的三种常见的排序算法,还包括归并排序、桶排序、多路归并等重要的排列方式,在学习数据结构的过程中要给予充分的重视。

总而言之,冒泡排序、选择排序、插入排序作为数据结构学习内容的重要组成部分,对于学生深入学习和把握数据结构的算法知识具有十分重要的作用和意义,大学生要进一步提高认识,积极的探索高质量和高效率学习常用排序算法的方法和策略,以不断的强化对该部分排序内容的学习和掌握,真正的掌握数据结构的核心内容,为后续更好的学习计算机内容和信息素养的培养奠定坚实的基础。

参考文献

[1] 任远,吉顺如,林志杰.“排序”的教学方法探究[J].教育教学论坛,2017(29):194-195.

[2] 张震.排序算法性能分析及基数排序算法的应用[J].时代农机,2017,44(06):36+39.

猜你喜欢

数据结构总结
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
数学教学中的点滴感悟
孕足月低位水囊引产联合静滴缩宫素的临床观察及总结
小学数学教师专业发展之我见
关于中考作文的一点建议(一)
数据结构与算法课程设计教学模式的探讨
高效学习数据结构