3.排序

排序的算法很多,课本主要介绍里两种排序方法:直接插入排序和冒泡排序

(1)直接插入排序

在日常生活中,经常碰到这样一类排序问题:把新的数据插入到已经排好顺序的数据列中。

例如:一组从小到大排好顺序的数据列{1,3,5,7,9,11,13},通常称之为有序列,我们用序号1,2,3,……表示数据的位置,欲把一个新的数据8插入到上述序列中。

完成这个工作要考虑两个问题:

(1)确定数据“8”在原有序列中应该占有的位置序号。数据“8”所处的位置应满足小于或等于原有序列右边所有的数据,大于其左边位置上所有的数据。

(2)将这个位置空出来,将数据“8”插进去。

对于一列无序的数据列,例如:{49,38,65,97,76,13,27,49},如何使用这种方法进行排序呢?基本思想很简单,即反复使用上述方法排序,由序列的长度不断增加,一直到完成整个无序列就有序了

首先,{49}是有序列,我们将38插入到有序列{49}中,得到两个数据的有序列:

{38,49},

然后,将第三个数据65插入到上述序列中,得到有序列:

{38,49,65}

…………

按照这种方法,直到将最后一个数据65插入到上述有序列中,得到

{13,27,38,49,49,65,76,97}

这样,就完成了整个数据列的排序工作。注意到无序列“插入排序算法”成为了解决这类问题的平台

(2)冒泡法排序

所谓冒泡法排序,形象地说,就是将一组数据按照从小到大的顺序排列时,小的数据视为质量轻的,大的数据视为质量沉的。一个小的数据就好比水中的气泡,往上移动,一个较大的数据就好比石头,往下移动。显然最终会沉到水底,最轻的会浮到顶,反复进行,直到数据列排成为有序列。以上过程反映了这种排序方法的基本思路。

我们先对一组数据进行分析。

设待排序的数据为:{49,38,65,97,76,13,27,49}

排序的具体操作步骤如下:

 0  445309  445317  445323  445327  445333  445335  445339  445345  445347  445353  445359  445363  445365  445369  445375  445377  445383  445387  445389  445393  445395  445399  445401  445403  445404  445405  445407  445408  445409  445411  445413  445417  445419  445423  445425  445429  445435  445437  445443  445447  445449  445453  445459  445465  445467  445473  445477  445479  445485  445489  445495  445503  447348 

违法和不良信息举报电话:027-86699610 举报邮箱:58377363@163.com

精英家教网