浙江高中信息技术排序和查找算法复习资料总结复习过程.docx

上传人:b****3 文档编号:2072992 上传时间:2022-10-26 格式:DOCX 页数:9 大小:190.57KB
下载 相关 举报
浙江高中信息技术排序和查找算法复习资料总结复习过程.docx_第1页
第1页 / 共9页
浙江高中信息技术排序和查找算法复习资料总结复习过程.docx_第2页
第2页 / 共9页
浙江高中信息技术排序和查找算法复习资料总结复习过程.docx_第3页
第3页 / 共9页
浙江高中信息技术排序和查找算法复习资料总结复习过程.docx_第4页
第4页 / 共9页
浙江高中信息技术排序和查找算法复习资料总结复习过程.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

浙江高中信息技术排序和查找算法复习资料总结复习过程.docx

《浙江高中信息技术排序和查找算法复习资料总结复习过程.docx》由会员分享,可在线阅读,更多相关《浙江高中信息技术排序和查找算法复习资料总结复习过程.docx(9页珍藏版)》请在冰豆网上搜索。

浙江高中信息技术排序和查找算法复习资料总结复习过程.docx

浙江高中信息技术排序和查找算法复习资料总结复习过程

2018年浙江省高中信息技术选考排序和查找算法复习资料

1、排序算法

1.选择排序

(1)概念:

找出数组元素中最小(大)的数据,使它与第一个元素中的数据交换位置;在余下的元素中继续找最小(大)的元素,与第二个元素中的数据交换位置;……

(2)比较的次数:

n*(n-1)/2交换的次数:

小于n-1趟数:

n-1

(3)算法:

将数组内的数据从小到大排序

fori=1ton-1

min=i

forj=i+1ton

ifd(j)

nextj

ifmin<>ithen

k=d(min)

d(min)=d(i)

d(i)=k

endif

nexti

(4)例题:

例题1:

使用选择排序的方法对数据8、6、1、9、4从大到小排序,需要进行数据比较、数据互换的次数分别是(D)

A、4,5B、10,2C、3,3D、10,4

例题2:

小陈设计了一个带密码的趣味“4+1”小游戏,小陈告诉大家,该密码可以通过以下方法破解:

将一组顺序是“3、2、8、5、9”的数码,在用选择排序法将这组数码从大到小的排序过程中,进行两次数据交换,即得。

则该密码可能是(D)

A、98523B、92853C、98523D、98253

例题3:

以下表格中的数据为2009年快乐女生十进七淘汰赛的选手信息。

某同学设计了一个VisualBasic程序用于选出晋及前七名的选手信息。

程序界面如下图所示,单击“十进七晋级名单”,在list2里显示晋及前七名的选手信息。

阅读、完善以下程序,并上机验证。

完成下面问题:

Dimxs(1To10)AsString

Dimdf(1To10)AsIntege

PrivateSubForm_Load()

DimiAsInteger

xs

(1)="黄英“:

df

(1)=88

xs

(2)="江映蓉“:

df

(2)=87

xs(3)="李霄云“:

df(3)=72

xs(4)="刘惜君“:

df(4)=77

xs(5)="谈莉娜“:

d(5)=61

xs(6)="郁可唯“:

df(6)=81

xs(7)="潘虹越“:

df(7)=48

xs(8)="潘辰“:

df(8)=38

xs(9)="李媛希“:

df(9)=36

xs(10)="曾轶可“:

df(10)=51

Fori=1To10

List1.AddItemxs(i)+""+Str(df(i))

List1.AddItem""

Nexti

EndSub

PrivateSubCommand1_Click()

DimjAsInteger,kAsInteger,mAsInteger

Dimtemp1AsString

Dimtemp2AsInteger

Forj=1To9

m=j

Fork=j+1To10

If①Thenm=k

Nextk

Ifj<>mThen

temp1=xs(j):

②:

xs(m)=temp1

temp2=df(j):

df(j)=df(m):

df(m)=temp2

EndIf

Nextj

Forj=③

List2.AddItemxs(j)+""+Str(df(j))

List2.AddItem""

Nextj

EndSub

1)command1上单击事件处理过程中采用的算法是:

选择排序(填:

冒泡排序或选择排)2)command1上单击事件处理过程中采用的排序方式是:

升序(填升序或降序)

3)程序中划线①处应填入df(k)>df(m)

4)程序中划线②处应填入xs(j)=xs(m)

5)程序中划线③处应填入1to7

2.冒泡排序

(1)概念:

把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻两个元素中的数据,将较小的数据换到上面的一个元素中,重复这一过程,直到处理完最后两个元素中的数据,称为第一遍加工。

然后对余下的n-1个元素重复上述处理过程,直至最后进行余下的两个数据的比较和交换。

(2)算法:

将数组内的数据从小到大排序

fori=1ton-1

forj=ntoi+1step-1

ifd(j)

k=d(j)

d(j)=d(j-1)

d(j-1)=k

endif

nextj

nexti

 

(3)例题:

例题1:

5位学生100米短跑的成绩(单位:

秒)如下表。

若采用冒泡排序算法对其进行排序,则第3趟的排序结果是(A)

原始数据

14.2

13.5

12.6

13.3

12.8

第1趟

12.6

14.2

13.5

12.8

13.3

第2趟

12.6

12.8

14.2

13.5

13.3

第3趟

第4趟

12.6

12.8

13.3

13.5

14.2

 

A、12.612.813.314.213.5B、12.612.813.313.514.2

C、12.612.814.213.513.3D、12.612.813.514.213.3

 

例题2:

下表记录了6个数据排序的过程。

分析表中数据可知,该排序采用的算法与排序方式分别为(C)

原始数据

65

57

59

44

45

69

第1遍

44

65

57

59

45

69

第2遍

44

45

65

57

59

69

第3遍

44

45

57

65

59

69

……

……

……

……

……

……

……

 

A、冒泡排序、降序B、选择排序、降序

C、冒泡排序、升序D、选择排序、升序

例题3:

随机产生10个两位正整数,并对它们进行排序。

用VB编写的程序运行界面如下图所示,请阅读并完善程序段,并上机验证。

Dimd(1to10)asinteger'定义一个一维数组d,用于存放10个正整数

DimiAsIntegerAsInteger

DimjAsInteger,tempAsInteger

PrivateSubCommand1_Click()'随机产生10个两位正整数

Randomize'随机数初始化

List1.Clear'原始数据清空

Fori=1To10

d(i)=int(Rnd*90)+10

List1.AddItemStr(d(i))'将数据显示到原始数据列表中

Next

EndSub

PrivateSubCommand2_Click()‘对10个两位正整数进行排序

List2.Clear'将排序后的列表数据清空

Fori=1To9

Forj=10toi+1step-1

Ifd(j)>d(j-1)Then

temp=d(j):

d(j)=d(j-1):

d(j-1)=temp

EndIf

Nextj

Nexti

Fori=1To10

List2.AddItemStr(d(i))'在列表2中显示排序后的数据

Nexti

EndSub

3.选择排序和冒泡排序对比:

若数组d里有n个待排序的数据,分别用冒泡法和选择法对此进行排序,试填充下表中的数据。

 

2、查找算法

1.顺序查找

(1)概念:

从数组的第一个数据开始,逐个将数据与给定的值进行比较。

若某个数据和给定的值相等,则查找成功,输出所查数据的位置;反之,查找不成功,输出“数据不存在于此数组中”

 

(2)算法:

2.对分查找

(1)概念:

前提:

数组中被查找的数据必须是有序的

基本思想:

首先将查找的数据与有序数组内处于中间位置的数据进行比较,如果两者相等,则查找成功;否则根据数组元素的有序性,就可确定该数据应该在数组的前半部分还是后半部分继续进行查找。

在新确定的范围内,继续按上述方法进行查找,直到获得最终结果。

(2)算法:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1