选择法排序流程图

2。2  常规的选择法排序

选择法排序还可以细分为三种排序法:第一是简单排序法;第二是树形选择法排序;第三是堆选择排序法。在下面的章节中,将详细分析这三种排序方法,比较它们之间的优缺点。

2。2。1 简单选择法排序

简单选择法排序的基本排序思想是:第i趟排序从序列的后n-i+1(i=1,2,3。。。。。。n-1)个元素中选择一个最小的元素,与该n-i+1个元素的前面那个元素进行位置交换,也就是与第i个位置上元素进行交换,直到i=n-1[4]。

下面通过一个例子来介绍它的执行过程。有这样一组序列{3,6,4,2,11,10}

第一趟排序从全部元素中选出最小的一个,并将它与第一个元素交换位置。初始序列中最小的元素是2,所以将2与第一个元素3交换位置,得到序列{2,6,4,3,11,10}

第二趟排序,从后5个元素中选出最小的元素,并将它与第二个元素交换位置。后5个元素中,3最小,所以将3与第二个元素6交换位置,得到序列:{2,3,4,6,11,10}

第三趟排序,从后4个元素中选出最小的元素是4,此时4正好是第三个元素,所以不需要交换位置,得到序列:{2,3,4,6,11,10}

接下来的每一堂操作都按照这样的“选择--交换”的方法进行。

2。2。2 树形选择法排序

树形选择法排序运行的基本操作是把初始数列的所有元素的关键字,两个两个的互相比较,然后从[(n/2)+1]个较小者的元素之间比较筛选,这样循环,最后选出最小的元素。

下面用一颗含8个叶子节点的完全二叉树来图示树形选择法的选择过程。如图2就是用二叉树从8个元素中比较出最小关键字的流程[4]:

 最小关键字的流程

    在图中,分别把原始数列的八个元素写到树中的八个叶子节点上,左右孩子为任意两个数,根结点中的元素是左右孩子中最小的元素。最深层的孩子比出最小后,根据关系的可传递性,把叶子结点中的最小元素13改为左孩子,再依次比较次深层,这样完全二叉树的根结点的元素就是次小值,如图3。

同理,即能完成对初始序列从小到大的排序。

2。3。3 堆选择法排序文献综述

堆排序的基本原理是每从堆中取出元素时总是按照顺序返回的特点。利用这个特点就可以把给定的初始序列保存到堆中,按顺序取出就能完成排序。堆排序还有一个优点就是从堆中取出一个元素后,保存堆的数组最后会空出一个存储空间,此时把取出的元素保存在最后空出来的空间中就可以,这样在不用使用额外内存的情况下就能完成排序[5]。

(1) 堆的性质

    堆其实可以看成一棵完全二叉树,它的每个非叶子节点都满足如下的性质:

 K[i]<=k[2*i+1]&&K[i]<=k[2*i+2],通常称为大顶堆;

 K[i]>=K[2*i+1]&&k[i]>=k[2*i+2],通常被称为小顶堆。

    据上述性质可得,堆顶元素要么是初始序列的最大元素要么是最小元素,而堆顶为最大元素的堆即是大顶堆,堆顶为最小元素的则称为小顶堆。

(2) 堆排序的思想

    根据堆的堆顶元素最大或最小,就简化每次从初始序列中选择最大或最小元素的步骤。

    以大顶堆为例,简单分析堆排序的基本思想:

     把初始序列元素(A1,A2。。。。An)组成大顶堆,把它当成无序区;

     把堆顶元素A[1]与最后一个元素A[n]替换,即把最大的元素放到有序区的第一个,得到新的无序区(A1,A2,。。。。。。An-1)和新的有序区(An),且满足A[1,2。。。n-1]<=A[n];

上一篇:VB+ArcGIS的校园信息系统的设计研究
下一篇:jsp+mysql超市管理系统设计实现+源代码

论信息技术茬外语教學中的應用【3270字】

嵌入式实时系统开发的正确选择【2027字】

16位单片机的语音电子门锁系统【2910字】

ADPCM语音编解码电路设计及FPGA实现【944字】

网络的话语【10838字】

三网融合及其物理网络的选择【2014字】

基于百度语音识别api的语音识别服务

互联网教育”变革路径研究进展【7972字】

张洁小说《无字》中的女性意识

安康汉江网讯

麦秸秆还田和沼液灌溉对...

我国风险投资的发展现状问题及对策分析

ASP.net+sqlserver企业设备管理系统设计与开发

新課改下小學语文洧效阅...

老年2型糖尿病患者运动疗...

网络语言“XX体”研究

LiMn1-xFexPO4正极材料合成及充放电性能研究