ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:200.96KB ,
资源ID:19539219      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19539219.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VB常用十大算法Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VB常用十大算法Word格式文档下载.docx

1、求最小值的方法类同。求若干数平均值,实质上就是先求和,再除以这些数的个数。应用举例:随机产生n个1-100 (包括1和100)的数,求它们的最大值、最小值和 平均值。Dim n%, i%, min%, max%, aver!, s%n 二 Val(lnputBox(输入个数:s = Int (Rnd * 100) + 1max = s : min = s : aver = s第1个数是:” & sFor i = 2 To ns = In t(R nd * 100) + 1第” & i & ” 个数是:If s max The n max = sIf s min The n min = save

2、r = aver + saver = aver/nPrin t max= max; min二;min;aver二aver解题技巧:最大值、最小值、平均值类型题目往往和数组放在一起考!有的不仅求这 些值,还要对具有最大值或者最小值的行或列或者某个元素进行处理,这时就要在 记录最大、最小值时,同时记录该值所在的行号和列号。3.素数问题素数(质数):就是一个大于等于 2的整数,并且只能被1和本身整除,而不能被其他整数整除的数。判别某数m是否是素数的经典算法是:对于m,从I = 2, 3, 4,m-1依次判别能否被I整除,只要有一个能整 除,m就不是素数,否则m是素数。Private Fun cti

3、on sushu(ByVal n As In teger) As Boolea nDim i As In tegerFor i = 2 To n - 1If (n Mod i) = 0 The n Exit ForNext IIf I = n the n sushu二TrueEnd Fun cti on很显然,实际上,我们可以改进上面Dim i as In tegerFor i = 2 to In t(Sqr( n)If X Mod i = 0 The n Exit Fun ctionsushu = True这样可以很好的提高效率。以上判断是否为素数的代码务必识记!求100-200之内素数。D

4、im j As In tegerFor j = 100 To 200If sushu(j) = True ThenPrint jEnd IfNext j实例说明编程题:找出10000以内所有可以表示为两个平方数和的素数。思路:首先找10000以内的所有素数,对于每个素数判断其是否可以表示为两个平 方数之和(即对于任意小于该素数 shu的数I,如果I和shu- I均为平方数,则说明其可以表示为两个平方数之和。)判断数I是否为平方数的方法:Sqr(i) = Int(Sqr(i)Dim j As In teger, m Asin teger, n As In tegerFor j = 2 To 10

5、000If pf(j, m, n)二 True The n Listl.Addltem j &二& m &+ & nPrivate Fun cti on pf(ByVal shu As In teger, m As In teger, n As In teger) As Boolea n Dim i As LongFor i = 1 To shu - 1If (Sqr(i) = In t(Sqr(i) And (Sqr(shu - i) = In t(Sqr(shu - i) The n pf = True m = i n 二 shu - iExit Fun cti onNext4.进制转换1

6、)十进制正整数m转换为R (2- 16)进制的字符串。将m不断除r取余数,直到商为0,将余数反序即得到结果。 算法实现:Private Fun cti on Tran( ByVai m As In teger, ByVai r As In teger) As Stri ngDim StrDtoR As Stri ng, n As In tegerDo While m on 二 m Mod rm = m rIf n 9 The nStrDtoR = Chr(65 + n - 10) & StrDtoRElseStrDtoR = n &Tran 二 StrDtoR2)R( 2- 16)进制字符串转

7、换为十进制正整数。 思路:R进制数每位数字乘以权值之和即为十进制数。Private Fun cti on Tran( ByVai s As Str ing, ByVai r As In teger) As In tegerDim i as In teger, n As In teger, dec As In tegers = UCase(Trim(s)For i = 1 To Len(s)If Mid(s, i, 1) = A The nn 二 Asc(Mid(s, i, 1) - Asc() + 10n 二 Val(Mid(s, i, 1)dec = dec + n * r 八(Le n(s

8、) - i)Tran 二 dec进制转化的原理要清楚,同时编写代码时候要留意 16进制中的A - F字符的处理。算法(五)约数因子-5.最大公约数、最小公倍数1)最大公约数:用辗转相除法求两自然数 m、n的最大公约数。(1)首先,对于已知两数 m、n,比较并使得mn;(2)m除以n得余数r;(3)若r= 0,则n为求得的最大公约数,算法结束;否则执行步骤 (4)分析步骤:m二24, n二924 与 9 r = m Mod n 二 620, m = 9, n 二 6 r = m Mod n 二 320, m = 6, n 二 3 r = m Mod n 二 0 3为最大公约数。m n nr再重复

9、执行(2)10与5m = 10, n 二 5r = m Mod n 二 0所以n(n=5)为最大公约数算法实现:循环Private Function GCD(ByVal m As Long, ByVai n As Long) As Long Dim temp As Long, r As LongIf m n The n temp = m: m = n: n 二 tempDor = m Mod nIf r = 0 Then Exit Do m = nn 二 rGCD = nPrivate Function GCD(ByVal m As Long, ByVai n As Long) As Long

10、Dim temp As Long, r As LongIf r = 0 The nm = nGCD = GCD( m, n)2)最小公倍数:mx n眾大公约数3)互质数:最大公约数为1的两个正整数该算法需要识记!这种类型题目的扩展是 约数和因子题型6.排序1)选择法排序(1)从n个数中选出最小数的下标,出了循环,将最小数与第一个数交换位置;(2)除第一个数外,在剩下的n-1个数中再按方法(1)选出次小的数,与第二个 数交换位置;(3)譬如:第一轮交换后 第二轮交换后 第三轮交换后 第四轮交换后 第五轮无交换以此类推,最后构成递增序列。8 6 9 3 2 72 6 9 3 8 72 3 9 6

11、8 72 3 6 9 8 72 3 6 7 8 9程序代码如下:Private Sub xzPaiXu(a() As Double, she ng As Boolea n)a为需要排序的数组,she ng为True则为升序排列,为False,则为降序排列。Dim i As In teger, j As In teger, temp As Double, m As In tegerFor i = LBound(a) To UBound(a) - 1 进行数组大小-1 轮比较m = i 在第i轮比较时,假定第i个元素为最值元素For j = i + 1 To UBou nd(a) 在剩下的元素中找

12、出最值元素的下标并赋值给If she ng The n 若为升序,则m记录最小元素下标,否则记录最大元素下标 If a(j) temp = a(i): a(i) = a(m): a(m) = temp 将最值元素与第i个元素交换调用该过程示例:Optio n Base 1Dim b(6) As Doubleb(1) = 8 : b(2) = 6 : b(3) = 9 : b(4) = 3 : b(5) = 2 : b(6) = 7Call xzPaiXu(b, True)For i% = 1 To 6Print b(i)2)冒泡法排序选择排序法在每一轮排序时找最值元素的下标,出了内循环(一轮排

13、序结束),再 交换最小数的位置;而冒泡法在每一轮排序时将相邻的数比较,当次序不对就交换 位置,出了内循环,最值数已经冒出。799 76 8863 32 - 29 98 87 76 6程序代码如下:Private Sub mpPaiXu(a() As Double, she ng As Boolea n)a为需要排序的数组,she ng为True则为升序排列,为False,贝卩为降序排列Dim i As In teger, j As In teger, temp As Double进行n-1轮比较从n到i个元素两两进行比较 若次序不对,马上进行交换For i = LBou nd(a) To UB

14、ou nd(a) - 1 For j = UBou nd(a) To i + 1 Step -1 If she ng ThenIf a(j) a(j - 1) Thentemp = a(j) : a(j) = a(j - 1) : a(j - 1) = temp End If a(j - 1) The n temp = a(j) : a(j - 1) = tempNext j 出了内循环,一轮排序结束,最值元素冒到最上边数组元素插入删除-7.在数组中插入或删除元素数组中元素的插入和删除一般是在已固定序列的数组中插入或删除一个元素,使 得插入或删除操作后的数组还是有序的。基本思路:首先要找到插入

15、位置或要删除的元素。1)插入代码如下:Dim a(10) As In teger, i As In teger, k As In tegerFor i = 0 To 9 生成数组a(i) = i * 3 + 1Print a(i);Print插入 14For k = 0 To 9 查找插入14在数组中的位置If 14 Asc() The n iAsc = iAsc - 26Code = Code & Chr(iAsc)az) Then iAsc = iAsc - 26Case Else cEnd SelectText2.Text = Code2)统计:统计字符或者数字出现的次数。算法说明:以字

16、符统计为例,设基本问题如下:请统计一段文本中英文字母在文本 中出现的次数。(不区分大小写)如: I am a student.得到:A:2 d:1 e:1 l:1 m:1 n:1 s:1 t:2 u:1由于不区分大小写,因此可定义一个大小为 26(下标:0 25)的数组,每个元素依次记录A、B、CZ字母出现的次数。A(0)存放字母a出现的次数A(1)存放字母b出现的次数a(2)存放字母c出现的次数Dim i As Integer, j As Integer, zimu(25) As Integer, allStr As String, aStr As String allStr = UCase(Textl.Text)For i = 1 To Len (Textl.Text)aStr = Mid(allStr, i, 1)If aStr And aStr zimu(Asc(aStr) - Asc() = zimu(Asc(aStr) - Asc() + 1 End IfFor i = 0 To 25If zimu(i) 0 The nj = j + 1Text2.Text = Text2.Text & C

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

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