第一范文网 - 专业文章范例文档资料分享平台

高中信息技术全国青少年奥林匹克联赛教案排序算法

来源:用户分享 时间:2025/5/30 17:54:53 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

全国青少年信息学奥林匹克联赛

排序算法

一、插入排序 (Insertion Sort)

1. 基本思想:

每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适

当位置,使数列依然有序;直到待排序数据元素全部插入

完为止。

2. 排序过程:【示例】:

[ 初始关键字 ] [49] 38 65 97 76 13 27 49

J=2(38) [38 49] 65 97 76 13 27 49

J=3(65) [38 49 65] 97 76 13 27 49

J=4(97) [38 49 65 97] 76 13 27 49

J=5(76) [38 49 65 76 97] 13 27 49

J=6(13) [13 38 49 65 76 97] 27 49

J=7(27) [13 27

38 49 65 76 97] 49

J=8(49) [13 27 38 49 49 65 76 97]

Procedure InsertSort(Var R : FileType);

// 对 R[1..N] 按递增序进行插入排序

, R[0] 是监视哨 //

Begin

for I := 2 To N Do

// 依次插入

R[2],...,R[n]//

begin

R[0] := R[I]; J := I - 1;

While R[0] < R[J] Do

// 查找 R[I] 的插入位置 //

begin

R[J+1] := R[J];

// 将大于 R[I] 的元素后移J:=J-1 end

R[J + 1] := R[0] ;

// 插入

R[I] //

end

End; //InsertSort //

//

二、选择排序

1. 基本思想:

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排

好序的数列的最后,直到全部待排序的数据元素排完。

2. 排序过程:

【示例】:

初始关键字 [49 38 65 97 76 13 27 49]

第一趟排序后 13 [ 38 65 97 76 49 27 49] 第二趟排序后 13 27 [65 97 76 49 38 49] 第三趟排序后 13 27 38 [97 76 49 65 49] 第四趟排序后 13 27 38 49 [49 97 65 76] 第五 趟排序后 13 27 38 49 49 [97 97 76] 第六趟排序后 13 27 38 49 49 76 [76 97] 第七趟排序后 13 27 38 49 49 76 76 [ 97] 最后排序结果 13 27 38 49 49 76 76 97

Procedure SelectSort(Var R : FileType);

// 对 R[1..N] 进行直接选择

排序 //

Begin

for I := 1 To N - 1 Do

// 做 N -

1 趟选择排序 //

begin

K:=I;

For J := I + 1 To

N Do R[K]//

// 在当前

无序区 R[I..N] 中选最小的元素

begin

If R[J] < R[K] Then K := J

end;

If K <> I Then // 交

换 R[I] 和 R[K] //

begin Temp := R[I]; R[I] := R[K]; R[K] := Temp; end;

end

End.

//Se

lectSort //

三、冒泡排序 (BubbleSort) 1. 基本思想:

两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交

换,直到没有反序的数据元素为止。

2. 排序过程:

设想被排序的数组

R[ 1..N ]垂直竖立,将每个数据元素看作有重量的气泡,根

R,凡扫描到违反本原则的轻

据轻气泡不能在重气泡之下的原则,从下往上扫描数组

气泡,就使其向上 \漂浮 \,如此反复进行,直至最后任何两个气泡都是轻者在上,

重者在下为止。

【示例】:

49 13 13 13 13 13 13 13

38 49 27 27 27 27 27 27

65 38 49 38 38 38 38 38

97 65 38 49 49 49 49 49

76 97 65 49 49 49 49 49

13 76 97 65 65 65 65 65

27 27 76 97 76 76 76 76

49 49 49 76 97 97 97 97

Procedure BubbleSort(Var R : FileType) //

从下往上扫描的起泡排序

//

Begin

For I := 1 To N-1 Do

// 做 N-1 趟排序 //

begin

NoSwap := True;

// 置未排序的标志

//

For J := N - 1 DownTo 1 Do

// 从底部往上扫描

//

begin

If R[J+1]< R[J] Then

// 交换元素 //

begin

Temp := R[J+1]; R[J+1 := R[J]; R[J] := Temp;

NoSwap := False

高中信息技术全国青少年奥林匹克联赛教案排序算法.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0dne04dwj00daes3y3831emx02sb1m00vpn_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top