四大算法-练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法的程序实现

一、排序:随机产生50—100之间的10个整数存放在A数组中,并按从小到大排序输出。

冒泡排序

Dim a(1 to 10) as integer For i = 1 to 10

A(i) =int (rnd*51) + 50 Print a(i);

Next i

print

For i = 10 to 2 step -1

For j = 1 to i-1

If a(j)>a(j+1) then

t=a(j)

a(j)=a(j+1)

a(j+a)=t

End if

Next j

Next i

For i = 1 to 10

Print a(i);

Next i

选择排序

Dim a(1 to 10) as integer For i = 1 to 10

A(i) =int (rnd*51) + 50

Print a(i);

Next i

Print

For i = 1 to 9

For j =i+1 to 10

If a(i)>a(j) then

t=a(i)

a(i)=a(j)

a(j)=t

End if

Next j

Next i

For i = 1 to 10

Print a(i);

Next i

二、顺序查找

在有10个数据的数组D中,查找文本框Text1输入的数据。Dim i,key as integer

key=Val(Text1.Text)

for i=1 to n

if d(i)=key then

Print key+”在数组第”+i+”个位置。”

Exit for

End if

Next i

If i>n then Print"没有找到"

三、对分查找

有10个数据已经按照升序存放在数组D中,要查找的数据通过文本框Text1输入。

Dim d(1to10)As Integer

key=Val(Text1.Text)

i=1:j=10'查找区间初始化

xb=0'记忆查找成功时的下标

nc=0'统计查找次数

Do While i<=j'为何不用For循环?

nc=nc+1'nc记录查找次数

m=Fix((i+j)/2)'计算出中间位置m=Int((i+j)/2)或m= (i+j)\2 If d(m)=key Then'查找成功立即终止循环

xb=m'查找成功时变量xb记忆住数组下标

Exit Do

End If

If key

j=m-1

Else'准备在下半区继续查找

i=m+1

End If

Loop

If xb<>0Then'查找成功,输出下标xb

Print xb

Else'查找不成功

Print"没有找到"

End If

算法的程序实现

一、排序:随机产生50—100之间的10个整数存放在A数组中,并按从小到大排序输出。

二、顺序查找

在有10个数据的数组D中,查找文本框Text1输入的数据。Dim i,key as integer

key=

for i= to

if then

Print key+”在数组第”+i+”个位置。”

End if

Next i

If then Print"没有找到"

三、对分查找

有10个数据已经按照升序存放在数组D中,要查找的数据通过文本框Text1输入。

Dim d(1to10)As Integer

key=

i=:j='查找区间初始化

xb='记忆查找成功时的下标

nc='统计查找次数

Do While'为何不用For循环?

nc='nc记录查找次数

m='计算出中间位置

If Then'查找成功立即终止循环

xb='查找成功时变量xb记忆住数组下标

End If

If Then'准备在上半区继续查找

j=

Else'准备在下半区继续查找

i=

End If

Loop

If Then'查找成功,输出下标xb Print xb

Else'查找不成功

Print"没有找到"

End If

四、编写程序:

用二分法统计素数个数。在文本框text1中输入1—1000范围内的某个数值,判断此数是否为素数,若不是素数,lab1中显示”此数不是素数”,否则,显示此数之前的素数个数。

相关文档
最新文档