- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VB_常考算法的过程表示.
常考算法的过程表示
过程程序的编制方法
首先确定用函数过程还是SUB过程
实际上过程是一个具有某种功能的独立程序单位,供多次调用。子过程与函数过程的区别是:前者子过程名无值,后者函数过程名有值。若过程有一个返回值,则习惯使用函数过程;若过程无返回值,则使用子过程。若过程有多个返回值,一般使用子过程,通过实参与形参的结合带回结果。
列出过程的框架
函数过程的框架
Function函数过程名([形参表])
…
函数过程名=表达式
…
End Function
子过程的框架
Sub子过程名[(形参表)]
…
End Sub
确定过程的虚参和虚参类型
过程中参数的作用是实现过程与调用者的数据通信。一方面,调用者为子过程或函数过程提供初值,这是通过实参传递给形参实现的。另一方面,子过程或函数过程将结果传递给调用者,这是通过地址传递方式实现的。当实参要得到返回的结果时,实参只能是变量,不能是常数或表达式。当实参为数组时只能是地址传递方式。在地址传递方式时,调用过程的实参与形参类型要一致
确定过程算法
注:下面仅是一些算法的常规表示,也可以采用其他方法实现,完成任务是首要的。还有其他一些未列出的算法,同学们也可以尝试自己编写。
一、排序算法
1.编一个排序的sub子程序。要求用选择法对数组A进行排序。
Private Sub sort(a() As Integer)
For i = 1 To UBound(a)
imin = i
For j = i + 1 To UBound(a)
If a(j) a(imin) Then imin = j
Next j
t = a(i)
a(i) = a(imin)
a(imin) = t
Next I
End Sub
2.编一个排序的sub子程序。要求用冒泡法对数组A进行排序。
private Sub sort(a() As Integer)
For i = 1 To UBound(a) - 1
For j = 1 To UBound(a) - i
If a(j) a(j + 1) Then
t = a(j)
a(j) = a(j + 1)
a(j + 1) = t
End If
Next j
Next I
End Sub
查找
1.二分法查找,递归。在数组a(数据自小到大排列)中查找值key,找不到index的值为-1,找到index的值为key的位置
Sub biresearch(a() As Variant, ByVal low%, ByVal high%, ByVal key As Variant, index%)
Dim mid As Integer
mid = (low + high) \ 2 取查找区间的中点
If a(mid) = key Then
index = mid 查找到,返回查找到的下标
Exit Sub
ElseIf low high Then 二分法查找区间无元素,查找不到
index = -1
Exit Sub
End If
If key a(mid) Then 查找区间在上半部
high = mid - 1
Else 查找区间在下半部
low = mid + 1
End If
Call biresearch(a, low, high, key, index) 递归调用查找过程
End Sub
2.二分法查找,循环。在数组a中查找B的位置。
Function Search2(a() As Integer, b As Integer) As Integer
Dim m As Integer, n As Integer, int1 As Integer
m = LBound(a)
n = UBound(a)
search2=-1
Do
int1 = (m +n) \ 2 得到中间元素的下标
If b a(int1
文档评论(0)