2020版信息技术浙江高考新选考一轮(课件+讲义+习题)(含最新高考题和模拟题):必修3第二章 算法的程序实现 (共2份打包)
|
2份
|
190页
|
472人阅读
|
75人下载
普通
内容正文:
第二章 算法的程序实现
[考试标准]
考试内容
考试要求
考试属性
1.枚举算法及程序实现
c
加试
2.解析算法及程序实现
c
3.排序算法及程序实现
(1)冒泡排序
(2)选择排序
c
4.查找算法及程序实现
(1)顺序查找
(2)对分查找
c
5.递归算法
a
6.VB访问Access数据库
(1)通过ADO对象连接数据库
(2)通过Recordset对象获取数据表中的数据
a
一、排序算法及程序实现
1.排序的含义及方式
(1)所谓排序就是将无序的数列变成有序的数列。
(2)排列方式分为升序(也称递增,即从小到大排列)和降序(也称递减,即从大到小排列)。
2.冒泡排序
(一)算法基本思想
冒泡排序法第i遍排序是从第n个数(从后向前比较)或者第1个数(从前向后比较)开始,依次比较相邻的两个数,逆序时交换两个数,把第i个有序的数交换到第i个或者第n-i+1个位置。
数据的交换是在内层循环中发生。
(二)核心代码
①将数组a(1 to n)从大到小排序,从后向前比较
For i=1 To n-1
For j=n To i+1 Step-1
If d(j-1)<d(j) Then
t=d(j):d(j)=d(j-1):d(j-1)=t
End If
Next j
Next i
②将数组a(1 to n)从大到小排序,从后向前比较
For i=1 To n-1
For j=1 To n-i
If d(j)<d(j+1)Then
t=d(j):d(j)=d(j+1):d(j+1)=t
End If
Next j
Next i
3.选择排序
(1)选择排序的基本思想
每趟排序是在所有的数据中找出最小(或最大)的数据,使它与第一个数据相互交换位置,然后再在剩下的数据中找出最小(或最大)的数据,与第二个数据相互交换位置,以此类推,直到所有元素成为一个有序序列。
(2)选择排序的程序实现
说明:要排序的n个数据已存放d数组中。
以升序为例的程序如下:
For i=1 To n-1 ′n个排序共进行n-1趟排序
k=i ′第i趟排序时,首先用k记录i
For j=i+1 To n ′k位置上的数依次与j位置上的数进行比较
If d(k)>d(j) Then k=j ′若找到比k位置上更小的数,则更新k的值
Next j
If k<>i Then ′若i位置上的数不是最小数,则和k位置上的数进行互换
temp=d(i)
d(i)=d(k)
d(k)=temp
End If
Next i
温馨提示:若要按降序排列,只要将语句If d(k)>d(j) Then k=j改成If d(k)<d(j) Then k=j即可。
二、查找算法及程序实现
1.查找算法
所谓查找就是在指定的数据中寻找某一特定的数据。
查找结果有两种,即找到(查找成功)和未找到(查找失败)。
2.顺序查找
(1)顺序查找的基本思想
从第一个数据开始,从左往右(或从上到下)将数据按顺序逐个与给定的值进行比较,若某个数据和给定值相等,则查找成功,找到并输出所查数据的位置;反之,查找失败。
若有n个数,则可能的最多查找次数为n。
(2)顺序查找算法基本框架
设要查找的数为key,待查找的数存放在数组d中。
For语句框架:
For i=1 to n
若d(i)=key,则表示找到,做相应处理
Next i
若i>n表示未找到
Do While语句框架:
i=1
Do while i<=n
若d(i)=key,则表示找到,做相应处理
i=i+1
Loop
若i>n表示未找到
(3)顺序查找的程序实现
在n个数组元素中依次查找,找到第1个满足条件的值,找到即结束,输出找到元素所在的位置;若找不到,输出“未找到”。
程序实现:
设要查找的数据是key(在文本框Text1中输入),查找的数据存放在数组d中。
pos为找到数的位置,pos=0表示未找到。
P表示查找的次数。
key=Val(Text1.Text) ′Val要根据实际情况决定是否要添加
p=0
pos=0
find=False ′find表示查找结果
i=1
Do While i<=n And Not find ′表示还没找完并且还未找到,则继续查找,Not find也可表示为find=false
p=p+1
If key=d(i) Then
pos=i
find=True
End If
i=i+1
Loop
If find Then ′也可表示为If find=true then
Text2.Text=“在d(”+Str(pos)+“)中”
Else
Text2.Text=“未找到”
End If
3.对分查找
(1)对