




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
排序算法的分析及实现冒泡排序和选择排序排序算法的分析及实现冒泡排序和选择排序排序的意义排序是为了将一组杂乱的数据变成一组有序的数据。(递增或递减)排序的意义排序是为了将一组杂乱的数据变成一组有序的数据。(递理解:冒泡排序是在一列数据中把较小的数据逐次向上推移的一种排序技术。冒泡排序理解:冒泡排序是在一列数据中把较小的数据逐次向上推移的一种排数组为了存储一组数据,我们需要用到数组变量例如dimd(1to1000)asinteger定义了一个数组变量d,下标从1到1000数组为了存储一组数据,我们需要用到数组变量例如dim冒泡排序用数组来存储一系列同类型的数据,然后调整数组中的元素例如:dimd(1to4)asinteger‘定义一个数组变量d27363218d(1)d(2)d(3)d(4)jj-127361832jj-127183632jj-118273632第1次冒泡排序时j从4开始到2冒泡排序用数组来存储一系列同类型的数据,然后调整数组中的元算法分析第1次冒泡排序时j从4开始到2Forj=4to2step-1ifd(j)<d(j-1)then交换d(j)和d(j-1)的值第2次冒泡排序时j从4开始到3Forj=4to3step-1ifd(j)<d(j-1)then交换d(j)和d(j-1)的值第3次冒泡排序时j从4开始到4Forj=4to4step-1ifd(j)<d(j-1)then交换d(j)和d(j-1)的值以i表示次数当i从1到3变化时每次j从4到i+1时
d(j)比d(j-1)小,则交换它们算法分析第1次冒泡排序时j从4开始到2Forj=程序代码:Fori=1Ton-1
Forj=nToi+1Step-1Ifd(j)<d(j-1)Then()EndIf
NextjNextik=d(j):d(j)=d(j-1):d(j-1)=k当i从1到3变化时每次j从4到i+1时
d(j)比d(j-1)小,则交换它们N表示有几个数进行排序两个数进行数据交换,就象两杯水进行交换,需要再拿一个空杯程序代码:Fori=1Ton-1k=d(j开始i=1i≤n-1?j=nj>i?d(j)<d(j-1)?j=j-1输出已排序数组d结束i=i+1互换d(j)与d(j-1)的数据YYYNNN当i从1到3变化时每次j从4到i+1时d(j)比d(j-1)小,则交换它j>=i+1开始i=1i≤n-1?j=nj>i?d(j)<d(j-1)?冒泡排序算法
PrivateSubCommand1_Click()'对8个数进行冒泡法排序
List2.Clear'将排序后的列表数据清空Fori=1To7Forj=8Toi+1Step-1Ifd(j)<d(j-1)Then
k=d(j):d(j)=d(j-1):d(j-1)=kEndIf
NextjNextiFori=1To8List2.AddItemStr(d(i))'在列表2中显示排序后的数据NextiEndSub冒泡排序算法PrivateSubCommand1_Cl某书店在5所学校流动售书量(单位:本)分别是82、113、46、69、35。采用冒泡排序对其进行排序,若完成第一遍时的结果是35、82、113、46、69,则完成第二遍时的结果是 (
)A.35、82、113、46、69B.35、46、82、69、113C.35、46、82、113、69D.35、46、69、82、113C某书店在5所学校流动售书量(单位:本)分别是82、113、42.下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为 (
)冒泡排序,降序选择排序,降序冒泡排序,升序
选择排序,升序C2.下表记录了6个数据的排序过程。分析表中数据可知,该排序采3.实现某排序算法的部分VB程序如下:Fori=1To4Forj=5Toi+1Step-1Ifa(j)<a(j-1)Thent=a(j):a(j)=a(j-1):a(j-1)=tNextjNexti
在经过某一遍排序“加工”后,数组元素a(l)到a(5)的数据依次为“25、77、51、59、32”。则下一遍排序“加工”后数组元素a(l)到a(5)的数据应该是 (
)A.25、32、77、51、59B.25、32、51、59、77C.25、32、59、51、77D.25、32、51、7、59A3.实现某排序算法的部分VB程序如下:A4.有一组原始数据:23、25、18、63、84、77、65、9、33、17。利用冒泡排序算法进行从小到大排序,最多需要进行(
)次加工,才可以完成整个数据的排序。A.5 B.6 C.8 D.9D4.有一组原始数据:23、25、18、63、84、77、65书籍将数据3、6、9、5、8、1进行一趟冒泡排序后得到的数据刚好是小杨的银行卡密码,那么小杨的银行卡密码是(
)A.369581 B.136958 C.135698 D.316958B书籍将数据3、6、9、5、8、1进行一趟冒泡排序后得到的数据在某年市机器人投蓝比赛决赛中,共有5支队伍参加,各队的最终成绩如下:82、74、66、95、70(单位:个/分钟),现用冒泡排序算法来实现这些数据的排序操作:则在第2遍加工的操作中,共需要交换数据的次数是 (
)A.1次 B.2次 C.3次 D.4次B在某年市机器人投蓝比赛决赛中,共有5支队伍参加,各队的最终成有如下VB程序段:s=“”Fori=1To3Forj=6Toi+1Step-1Ifa(j)<a(j-1)Thenk=a(j):a(j)=a(j-1):a(j-1)=kEndIfNextjs=s+str(a(i))NextiText1.Text=str(s)有如下VB程序段:数组元素从a(1)到a(6)的数据依次为“3、7、2、5、8、9”,经过该程序“加工”后,文本框Text1中显示的是 (
)A.987B.235C.372D.732B数组元素从a(1)到a(6)的数据依次为“3、7、2、5、8有一组原始数据:13、15、8、65、14、33。若采用冒泡法进行排序,则共需比较的次数为 (
) A.21 B.15 C.10 D.28B有一组原始数据:13、15、8、65、14、33。若采用冒泡设计一个VB程序,点击“随机产生15个整数”按钮,程序自动在列表框List1中产生15个1000以内的随机非负数,点击“冒泡排序”按钮,对这些数据按冒泡算法进行从大到小排序。程序运行时界面如图9-1所示:图9-1设计一个VB程序,点击“随机产生15个整数”按钮,程序自动在(1)(1)设计应用程序界面时,为添加“冒泡排序”按钮,应使用如图9-2所示的“控件工具箱”中的________(填写相应编号),并在图9-3所示的“属性”窗口中,将__________属性值设置为“冒泡排序”。4Caption图9-2图9-3(1)(1)设计应用程序界面时,为添加“冒泡排序”按钮,应使(2)从左至右的两个列表框的名称分别是List1和List2,“随机产生15个整数”按钮的名称是Command1,“冒泡排序”按钮的名称是Command2。请根据题意将下列程序补充完整。Dima(1To15)AsIntegerDimnAsInteger
PrivateSubCommand1_Click()n=15RandomizeList1.ClearList2.ClearFori=1To15①List1.AddItemStr(i)&“:”
&Str(a(i))NextiEndSub(2)从左至右的两个列表框的名称分别是List1和List2PrivateSubCommand2_Click()DimtAsIntegerList2.ClearFori=1Ton-1Forj=nToi+1Step-1If②Thent=a(j):a(j)=a(j-1):a(j-1)=tEndIfNextjNextiFori=1TonList2.AddItemStr(i)&“:”
&Str(a(i))NextiEndSub(1)程序中①划线处应填入___________________。(2)程序中②划线处应填入___________________。注:该示例程序在素材文件夹下vb23文件夹中。a(i)=Int(Rnd()*1001)a(j)>a(j-1)PrivateSubCommand2_Click()(1新学年开学安排坐位,需要先根据学生身高排好队。以下VB程序为排队程序,其中变量s为学生总数,数组n存储学生姓名,数组h存储学生身高(单位:厘米)。程序界面如下图所示。程序运行时,自动加载学生姓名与身高数据,点击“排队”按钮,按学生身高从低到高进行排序。新学年开学安排坐位,需要先根据学生身高排好队。以下VB程序为实现该功能的程序代码如下:Dimn(1To60)AsStringDimh(1To60)AsIntegerConsts=60
PrivateSubCommand1_Click()DimiAsInteger,jAsIntegerDimtAsIntegerDimkAs①List1.ClearFori=1Tos-1Forj=i+1TosIf②Thent=h(i):h(i)=h(j):h(j)=t③EndIfNextjNextiFori=1TosList1.AddItemn(i)&“:”&Str(h(i))NextiEndSubPrivateSubForm_Load()'学生姓名数据n赋值语句,此处省略'学生身高数据h赋值语句,此处省略Fori=1TosList1.AddItemn(i)&“:”
&Str(h(i))
'在列表框显示学生姓名与身高原始数据NextiEndSub为使程序完整,请在划线处填上合适的语句。(1)划线①处应填入______________________。(2)划线②处应填入______________________。(3)划线③处应填入______________________。Stringh(i)>h(j)k=n(i):n(i)=n(j):n(j)=k实现该功能的程序代码如下:PrivateSubForm_叶锦平和同学们去农科院开展研究性学习,大家都收获很大,锦平设计了一个VB程序,他把同学们收集到的水稻亩产量和同学姓名已分别保存在数组a和数组b中,第i个同学收集的亩产量保存在a(i)中,对应的同学姓名保存在b(i)中,最后按亩产量从高到低进行排序。
程序界面如图所示,左边列表框List1中显示的是所有同学收集到的原始数据,单击”排序”按钮(Command1)后,在右边的列表框List2中显示排序完成后的结果(按亩产量从高到低排列)。叶锦平和同学们去农科院开展研究性学习,大家都收获很大,锦平设解决此问题的算法流程图如图所示,相应的排序部分程序如下:Dima(1Ton)AsSingleDimb(1Ton)AsStringPrivateSubCommand1_Click()DimiAsInteger,jAsInteger,cAsSingle,tAsStringList2.ClearFori=1Ton–1
'设共有n名同学Forj=①If②Thenc=a(j-1)a(j-1)=a(j)a(j)=ct=b(j-1)b(j-1)=b(j)b(j)=tEndIfNextjNextiFori=1TonList2.AddItemStr(a(i))+“”+b(i)NextiEndSubPrivateSubForm_Load()'此过程用于对数组a和数组b进行初始赋值,代码略List1.AddItemStr(a(i))+“”+b(i)
'在列表框List1中显示原始数据EndSub(1)解决此问题的算法是___________________。在程序①和②划线处填入适当的语句或表达式,将程序补充完整:(2)程序中①划线处应填入_________________。(3)程序中②划线处应填入_________________。注:该示例程序在素材文件夹下vb25文件夹中。冒泡排序算法ntoi+1Step-1a(j)>a(j-1)解决此问题的算法流程图如图所示,相应的排序部分程序如下:(1选择排序选择排序(递增)的方法是找出数组元素中最小的数据,使它与第一个元素中的数据交换位置在余下的元素中继续找最小的元素,与第二个元素中的数据交换位置
……
选择排序选择排序(递增)的方法是算法演示第1
遍选择27363218d(1)d(2)d(3)d(4)j=2Min=1
27363218j=3Min=1
27363218j=4Min=j
18363227Min=1Forj=2to4
ifd(min)>d(j)thenmin=jNextj如果最小的数所在的位置不是1,则交换d(min)和d(1)的位置
如果找到更小的,用min记住它的编号
算法演示第1遍选择27363218d(1)d(2分析第1遍选择,j从2开始到4Min=1Forj=2to4ifd(min)>d(j)thenmin=jNextjIfmin<>1,交换d(1)和d(min)Min=2Forj=3to4ifd(min)>d(j)thenmin=jNextjIfmin<>2then交换d(2)和d(min)第2遍选择,j从3开始到4第3遍选择,j从4开始到4Min=3Forj=4to4ifd(min)>d(j)thenmin=jNextjIfmin<>3then交换d(3)和d(min)用i来表示次数的变化分析第1遍选择,j从2开始到4Min=1Min=2第2遍选程序实现Fori=1Tonum-1‘n个数,排序n-1次
Min=i
Forj=i+1Tonum'如果找到更小的,用min记住它的编号
Ifd(Min)>d(j)ThenMin=j
Nextj
IfMin<>iThen'如果最小的数所在的位置不是i,则交换
k=d(i):d(i)=d(Min):d(Min)=k
EndIfNexti数组元素的个数程序实现Fori=1Tonum-1PrivateSubCommand1_Click()'对8个数进行选择法排序List2.Clear'将排序后的列表数据清空Fori=1To7'n个数,排序n-1次
Min=i
Forj=i+1To8'如果找到更小的,用min记住它的编号
Ifd(Min)>d(j)ThenMin=j
Nextj
IfMin<>iThen'如果最小的数所在的位置不是i,则交换
k=d(i)
d(i)=d(Min)
d(Min)=k
EndIfNexti
Fori=1To8List2.AddItemStr(d(i))'在列表2中显示排序后的数据NextiEndSub选择法排序PrivateSubCommand1_Click()用选择排序算法对一组学生的身高数据进行升序排序,已知第一遍排序结束后的数据序列为166、169、177、175、172,则下列选项中可能是原始数据序列的是(
)A.175、177、169、166、172B.177、169、166、175、172C.166、177、169、175、172D.166、169、172、175、177B用选择排序算法对一组学生的身高数据进行升序排序,已知第一遍排2.有6位裁判为运动员评分,给出的分数分别为48、45、63、46、59、57。采用选择排序算法对其进行排序,若完成第一遍时的结果为:63、45、48、46、59、57,则完成第二遍时的结果是 (
)A.63、45、48、46、59、57B.63、59、57、48、45、46C.63、59、57、46、45、48D.63、59、48、46、45、57D2.有6位裁判为运动员评分,给出的分数分别为48、45、633.某校通过政府招投标中心采购一套多媒体教学设备,有5家单位参加竞标,竞标价分别为18万、17万、23万、15万、16万元人民币。若采用选择排序算法对标价从大到小排序,需要进行数据互换的次数是 (
)A.1 B.3 C.4 D.5B3.某校通过政府招投标中心采购一套多媒体教学设备,有5家单位4.圣诞节即将来临,某商场欲对仓库某货号商品进行补仓以应对即将举办的促销活动。6家供货商给出的报价分别为48、43、60、46、58、55,若采用选择排序算法对其进行从大到小排序,则第三遍的排序结果是 (
)CA.60、58、48、46、43、55 B.60、43、48、46、58、55C.60、58、55、46、43、48 D.60、58、55、48、46、434.圣诞节即将来临,某商场欲对仓库某货号商品进行补仓以应对即已知算法1与算法2都是排序算法,可能是冒泡排序或者选择排序,下面的表格反应的是在不同量的数据下,排序时进行数据交换的次数,分析算法1与算法2最有可能的排序算法分别是 (
)CA.冒泡排序冒泡排序 B.选择排序选择排序C.冒泡排序选择排序 D.选择排序冒泡排序已知算法1与算法2都是排序算法,可能是冒泡排序或者选择排序,下列关于排序的说法,错误的是 (
)A.相对而言,选择排序算法的效率比冒泡排序算法高B.冒泡排序算法和选择排序算法的都需要用到双循环结构C.对于n个无序数据,不管是冒泡排序还是选择排序,都要经过n-1遍加工D.冒泡排序算法的程序实现一般要用到数组变量k,而选择排序则不需要C下列关于排序的说法,错误的是 ()C小明编写了一个统计数组元素a(l)到a(n)中的“升序段”个数s(如图所示的数据序列,其“升序段”的个数等于3)的VB程序。部分程序代码如下:k=0s=0Fori=2TonIfa(i)>a(i-1)Then
Elsek=0EndIfIfk=1Thens=s+1NextiTextl.Text=Str(s)方框中的正确语句是 (
)A.k=k-1 B.K=1 C.K=-1 D.K=k+1D小明编写了一个统计数组元素a(l)到a(n)中的“升序段”个…Fori=1Ton-1
k=iForj=i+1TonIfd(j)<d(k)Thenk=jNextj
Ifi<>kThent=d(i):d(i)=d(k):d(k)=t
EndIfNexti…D8.下列VB程序段是选择法排序程序的主要部分。其中虚线框内代码用于寻找数组元素d(i)到d(n)的最小值。虚虚线框内代码运行结束时,保存最小值的数组元素一定是(
)A.d(n) B.d(j)C.d(i) D.d(k)D…D8.下列VB程序段是选择法排序程序的主要部分。其中虚线框有如下VB程序,运行时,点击“随机产生15个整数”按钮将随机产生15个1000以内的随机非负整数,如下图所示,PrivateSubCommand2_Click()Fori=1Ton-1k=iForj=i+1Ton
Ifa(j)<a(k)Thenk=jNextjIfi<>kThen
t=a(i):a(i)=a(k):a(k)=tEndIfNextiFori=1Ton
List2.AddItemStr(i)&“:”&Str(a(i))NextiEndSub注:该示例程序在素材文件夹下vb26文件夹中。点击“选择排序”时,输出的数据结果在屏幕上从上到下的显示顺序为_________(选填从大到小/从小到大)。若要使它以相反的顺序显示,那么方框内的语句应修改为__________。从小到大a(j)>a(k)有如下VB程序,运行时,点击“随机产生15个整数”按钮将随机10.2010年冬奥会开幕式中各代表团的入场顺序是:希腊排在第一位,东道主加拿大排在最后一位,其余80个代表团入场顺序按国家或地区名称依次排列。下列VB程序实现如下功能:单击命令按钮Command1后,在列表框List1中按入场顺序显示所有代表团的名称。请回答下列问题:(1)虚线框内程序段所用的排序算法的名称是_________________。在划线出填入合适的代码。
Dima(0To81)AsStringDimnAsIntegerPrivateSubForm_Load()
'用于将82个参赛代表团名称放入数组a中n=80a(0)=“Greece”a(n+1)=“Canada”'另外80个代表团名称放在a(1)至a(80)中,代码略EndSubPrivateSubCommand1_Click()DimsAs①DimiAsInteger,jAsInteger,kAsIntegerFori=1Ton-1k=iForj=i+1TonIfa(j)<a(k)Thenk=jNextjs=a(i):a(i)=a(k):a(k)=sNextiList1.ClearFori=0To②List1.AddItema(i)NextiEndSub选择排序算法String81
(3)程序中②划线处应填入_______。(2)程序中①划线处应填入_______。10.2010年冬奥会开幕式中各代表团的入场顺序是:希腊排在11.某俱乐部举行射击比赛,最后有十人进入决赛,录入员编制了如下VB程序,功能是根据成绩进行排序,程序中数组a保存所有参赛者的姓名,数组b保存此成绩对应的成绩,第i位参赛者的姓名保存在a(i)中,成绩保存在b(i)中。程序界面如图所示,左边列表框List1中显示原始数据(姓名和相应的成绩),单击“排序”按钮(Command1),排序后的结果按成绩从高到低显示在列表框List2中。11.某俱乐部举行射击比赛,最后有十人进入决赛,录入员编制了解决此问题的算法流程图如图所示,排序部分的程序段如下:Dima(1To12)AsStringDimb(1To12)AsSinglePrivateSubCommand1_Click()DimiAsInteger,jAsInteger,kAsInteger,xAsSingle,yAsStringFori=1To11
k=i
Forj=i+1To12If①Thenk=j
Nextj
Ifk<>iThen
y=a(i):a(i)=a(k):a(k)=y
②
EndIfNexti
Fori=1To12List2.AddItema(i)+””+Str(b(i))
NextiEndSubPrivateSubForm_Load()'此过程用于对数组a和数组b进行初始赋值,代码略EndSub(1)解决此问题的算法是____________________。(2)程序中①划线处应填入____________________。(3)程序中②划线处应填入____________________。注:该示例程序在素材文件夹下vb27文件夹中。选择排序算法b(j)>b(k)x=b(i):b(i)=b(k):b(k)=x解决此问题的算法流程图如图所示,排序部分的程序段如下:(1)某校高三年级段要将模拟考试成绩进行一个排名,需要对总分进行排名次。以下程序运行时,自动在列表框显示学生姓名与成绩,点击“排名次”按钮Command1,将按成绩从高到底进行排序。程序运行界面如下图所示:某校高三年级段要将模拟考试成绩进行一个排名,需要对总分进行排部分程序代码如下所示:Dimxm(1To45)AsString
'用于存储学生姓名Dimcj(1To45)AsSingle
'用于存储学生总分PrivateSubCommand1_Click()
List1.Clear
DimiAsInteger,jAsInteger,kAsInteger,xAsSingle,yAsString
Fori=1To44k=iFor_______①_______
Ifcj(j)>cj(k)Thenk=jNextjIfk<>iThen
x=cj(i):cj(i)=cj(k):cj(k)=x
y=xm(i):xm(i)=xm(k):xm(k)=yEndIf
Nexti
Fori=______②______
List1.AddItemStr(i)+””+xm(i)+””+Str(cj(i))
NextiEndSub
在程序①和②划线处,填入适当的语句或表达式,把程序补充完整:(1)程序中①划线处应填入____________________________。(2)程序中②划线处应填入____________________________。注:该示例程序在素材文件夹下vb28文件夹中。PrivateSubForm_Load()'此处为姓名与成绩赋值语句,忽略
Fori=1To45List1.AddItemxm(i)+””+Str(cj(i))
NextiEndSubj=i+1To451To45部分程序代码如下所示:在程序①和②划线处,填入适当的语句或表(操作题)设计一个VB程序,模拟电商网站的商品价格排序(假设共100个价格)。运行界面如下图所示:(操作题)设计一个VB程序,模拟电商网站的商品价格排序(假设(1)请按下表中的说明在窗体中添加控件并设置控件的属性值:(2)打开代码窗口,添加变量声明代码:Dima(1To100)AsSingle
'定义价格数组DimiAsInteger,jAsInteger,kAsIntegerDimtAsSingleConstn=100(1)请按下表中的说明在窗体中添加控件并设置控件的属性值:((3)双击窗体,添加数组初始化代码:PrivateSubForm_Load()
Fori=1To100a(i)=Format(Rnd()*100+500,“00.0”)
'模拟价格,产生500至600一个随机数,带一位小数List1.AddItema(i)
NextiEndSub(3)双击窗体,添加数组初始化代码:(4)双击“排序”按钮Command1,添加如下代码PrivateSubCommand1_Click()
List1.Clear
Fori=1Ton-1k=iForj=i+1Ton
IfOption1.Value=TrueThen
If①Thenk=j
'按价格从低到高排序
Else
Ifa(j)>a(k)Thenk=j
'按价格从高到底排序
EndIfNextjIfi<>kThen
t=a(i):a(i)=a(k):a(k)=tEndIf
Nexti
Fori=1To100
②
'显示排序后的数据
NextiEndSub(4)双击“排序”按钮Command1,添加如下代码(5)在程序①和②划线处,填入适当的语句或表达式,把程序补充完整:①划线处应填入___________________________________。②划线处应填入___________________________________。(6)程序调试正确后,在当前文件夹下生成“moni.exe”,并递交给老师。注:该示例程序在素材文件夹下vb29文件夹中。a(j)<a(k)List1.AddItema(i)(5)在程序①和②划线处,填入适当的语句或表达式,把程序补充选择排序和冒泡排序的比较以n个数据为例选择排序和冒泡排序的比较以n个数据为例3718285用冒泡排序从大到小排序第4趟结果是:用选择排序从小到大排序第3趟结果是:3718285用冒泡排序从大到小排序第4排序算法的分析及实现冒泡排序和选择排序排序算法的分析及实现冒泡排序和选择排序排序的意义排序是为了将一组杂乱的数据变成一组有序的数据。(递增或递减)排序的意义排序是为了将一组杂乱的数据变成一组有序的数据。(递理解:冒泡排序是在一列数据中把较小的数据逐次向上推移的一种排序技术。冒泡排序理解:冒泡排序是在一列数据中把较小的数据逐次向上推移的一种排数组为了存储一组数据,我们需要用到数组变量例如dimd(1to1000)asinteger定义了一个数组变量d,下标从1到1000数组为了存储一组数据,我们需要用到数组变量例如dim冒泡排序用数组来存储一系列同类型的数据,然后调整数组中的元素例如:dimd(1to4)asinteger‘定义一个数组变量d27363218d(1)d(2)d(3)d(4)jj-127361832jj-127183632jj-118273632第1次冒泡排序时j从4开始到2冒泡排序用数组来存储一系列同类型的数据,然后调整数组中的元算法分析第1次冒泡排序时j从4开始到2Forj=4to2step-1ifd(j)<d(j-1)then交换d(j)和d(j-1)的值第2次冒泡排序时j从4开始到3Forj=4to3step-1ifd(j)<d(j-1)then交换d(j)和d(j-1)的值第3次冒泡排序时j从4开始到4Forj=4to4step-1ifd(j)<d(j-1)then交换d(j)和d(j-1)的值以i表示次数当i从1到3变化时每次j从4到i+1时
d(j)比d(j-1)小,则交换它们算法分析第1次冒泡排序时j从4开始到2Forj=程序代码:Fori=1Ton-1
Forj=nToi+1Step-1Ifd(j)<d(j-1)Then()EndIf
NextjNextik=d(j):d(j)=d(j-1):d(j-1)=k当i从1到3变化时每次j从4到i+1时
d(j)比d(j-1)小,则交换它们N表示有几个数进行排序两个数进行数据交换,就象两杯水进行交换,需要再拿一个空杯程序代码:Fori=1Ton-1k=d(j开始i=1i≤n-1?j=nj>i?d(j)<d(j-1)?j=j-1输出已排序数组d结束i=i+1互换d(j)与d(j-1)的数据YYYNNN当i从1到3变化时每次j从4到i+1时d(j)比d(j-1)小,则交换它j>=i+1开始i=1i≤n-1?j=nj>i?d(j)<d(j-1)?冒泡排序算法
PrivateSubCommand1_Click()'对8个数进行冒泡法排序
List2.Clear'将排序后的列表数据清空Fori=1To7Forj=8Toi+1Step-1Ifd(j)<d(j-1)Then
k=d(j):d(j)=d(j-1):d(j-1)=kEndIf
NextjNextiFori=1To8List2.AddItemStr(d(i))'在列表2中显示排序后的数据NextiEndSub冒泡排序算法PrivateSubCommand1_Cl某书店在5所学校流动售书量(单位:本)分别是82、113、46、69、35。采用冒泡排序对其进行排序,若完成第一遍时的结果是35、82、113、46、69,则完成第二遍时的结果是 (
)A.35、82、113、46、69B.35、46、82、69、113C.35、46、82、113、69D.35、46、69、82、113C某书店在5所学校流动售书量(单位:本)分别是82、113、42.下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为 (
)冒泡排序,降序选择排序,降序冒泡排序,升序
选择排序,升序C2.下表记录了6个数据的排序过程。分析表中数据可知,该排序采3.实现某排序算法的部分VB程序如下:Fori=1To4Forj=5Toi+1Step-1Ifa(j)<a(j-1)Thent=a(j):a(j)=a(j-1):a(j-1)=tNextjNexti
在经过某一遍排序“加工”后,数组元素a(l)到a(5)的数据依次为“25、77、51、59、32”。则下一遍排序“加工”后数组元素a(l)到a(5)的数据应该是 (
)A.25、32、77、51、59B.25、32、51、59、77C.25、32、59、51、77D.25、32、51、7、59A3.实现某排序算法的部分VB程序如下:A4.有一组原始数据:23、25、18、63、84、77、65、9、33、17。利用冒泡排序算法进行从小到大排序,最多需要进行(
)次加工,才可以完成整个数据的排序。A.5 B.6 C.8 D.9D4.有一组原始数据:23、25、18、63、84、77、65书籍将数据3、6、9、5、8、1进行一趟冒泡排序后得到的数据刚好是小杨的银行卡密码,那么小杨的银行卡密码是(
)A.369581 B.136958 C.135698 D.316958B书籍将数据3、6、9、5、8、1进行一趟冒泡排序后得到的数据在某年市机器人投蓝比赛决赛中,共有5支队伍参加,各队的最终成绩如下:82、74、66、95、70(单位:个/分钟),现用冒泡排序算法来实现这些数据的排序操作:则在第2遍加工的操作中,共需要交换数据的次数是 (
)A.1次 B.2次 C.3次 D.4次B在某年市机器人投蓝比赛决赛中,共有5支队伍参加,各队的最终成有如下VB程序段:s=“”Fori=1To3Forj=6Toi+1Step-1Ifa(j)<a(j-1)Thenk=a(j):a(j)=a(j-1):a(j-1)=kEndIfNextjs=s+str(a(i))NextiText1.Text=str(s)有如下VB程序段:数组元素从a(1)到a(6)的数据依次为“3、7、2、5、8、9”,经过该程序“加工”后,文本框Text1中显示的是 (
)A.987B.235C.372D.732B数组元素从a(1)到a(6)的数据依次为“3、7、2、5、8有一组原始数据:13、15、8、65、14、33。若采用冒泡法进行排序,则共需比较的次数为 (
) A.21 B.15 C.10 D.28B有一组原始数据:13、15、8、65、14、33。若采用冒泡设计一个VB程序,点击“随机产生15个整数”按钮,程序自动在列表框List1中产生15个1000以内的随机非负数,点击“冒泡排序”按钮,对这些数据按冒泡算法进行从大到小排序。程序运行时界面如图9-1所示:图9-1设计一个VB程序,点击“随机产生15个整数”按钮,程序自动在(1)(1)设计应用程序界面时,为添加“冒泡排序”按钮,应使用如图9-2所示的“控件工具箱”中的________(填写相应编号),并在图9-3所示的“属性”窗口中,将__________属性值设置为“冒泡排序”。4Caption图9-2图9-3(1)(1)设计应用程序界面时,为添加“冒泡排序”按钮,应使(2)从左至右的两个列表框的名称分别是List1和List2,“随机产生15个整数”按钮的名称是Command1,“冒泡排序”按钮的名称是Command2。请根据题意将下列程序补充完整。Dima(1To15)AsIntegerDimnAsInteger
PrivateSubCommand1_Click()n=15RandomizeList1.ClearList2.ClearFori=1To15①List1.AddItemStr(i)&“:”
&Str(a(i))NextiEndSub(2)从左至右的两个列表框的名称分别是List1和List2PrivateSubCommand2_Click()DimtAsIntegerList2.ClearFori=1Ton-1Forj=nToi+1Step-1If②Thent=a(j):a(j)=a(j-1):a(j-1)=tEndIfNextjNextiFori=1TonList2.AddItemStr(i)&“:”
&Str(a(i))NextiEndSub(1)程序中①划线处应填入___________________。(2)程序中②划线处应填入___________________。注:该示例程序在素材文件夹下vb23文件夹中。a(i)=Int(Rnd()*1001)a(j)>a(j-1)PrivateSubCommand2_Click()(1新学年开学安排坐位,需要先根据学生身高排好队。以下VB程序为排队程序,其中变量s为学生总数,数组n存储学生姓名,数组h存储学生身高(单位:厘米)。程序界面如下图所示。程序运行时,自动加载学生姓名与身高数据,点击“排队”按钮,按学生身高从低到高进行排序。新学年开学安排坐位,需要先根据学生身高排好队。以下VB程序为实现该功能的程序代码如下:Dimn(1To60)AsStringDimh(1To60)AsIntegerConsts=60
PrivateSubCommand1_Click()DimiAsInteger,jAsIntegerDimtAsIntegerDimkAs①List1.ClearFori=1Tos-1Forj=i+1TosIf②Thent=h(i):h(i)=h(j):h(j)=t③EndIfNextjNextiFori=1TosList1.AddItemn(i)&“:”&Str(h(i))NextiEndSubPrivateSubForm_Load()'学生姓名数据n赋值语句,此处省略'学生身高数据h赋值语句,此处省略Fori=1TosList1.AddItemn(i)&“:”
&Str(h(i))
'在列表框显示学生姓名与身高原始数据NextiEndSub为使程序完整,请在划线处填上合适的语句。(1)划线①处应填入______________________。(2)划线②处应填入______________________。(3)划线③处应填入______________________。Stringh(i)>h(j)k=n(i):n(i)=n(j):n(j)=k实现该功能的程序代码如下:PrivateSubForm_叶锦平和同学们去农科院开展研究性学习,大家都收获很大,锦平设计了一个VB程序,他把同学们收集到的水稻亩产量和同学姓名已分别保存在数组a和数组b中,第i个同学收集的亩产量保存在a(i)中,对应的同学姓名保存在b(i)中,最后按亩产量从高到低进行排序。
程序界面如图所示,左边列表框List1中显示的是所有同学收集到的原始数据,单击”排序”按钮(Command1)后,在右边的列表框List2中显示排序完成后的结果(按亩产量从高到低排列)。叶锦平和同学们去农科院开展研究性学习,大家都收获很大,锦平设解决此问题的算法流程图如图所示,相应的排序部分程序如下:Dima(1Ton)AsSingleDimb(1Ton)AsStringPrivateSubCommand1_Click()DimiAsInteger,jAsInteger,cAsSingle,tAsStringList2.ClearFori=1Ton–1
'设共有n名同学Forj=①If②Thenc=a(j-1)a(j-1)=a(j)a(j)=ct=b(j-1)b(j-1)=b(j)b(j)=tEndIfNextjNextiFori=1TonList2.AddItemStr(a(i))+“”+b(i)NextiEndSubPrivateSubForm_Load()'此过程用于对数组a和数组b进行初始赋值,代码略List1.AddItemStr(a(i))+“”+b(i)
'在列表框List1中显示原始数据EndSub(1)解决此问题的算法是___________________。在程序①和②划线处填入适当的语句或表达式,将程序补充完整:(2)程序中①划线处应填入_________________。(3)程序中②划线处应填入_________________。注:该示例程序在素材文件夹下vb25文件夹中。冒泡排序算法ntoi+1Step-1a(j)>a(j-1)解决此问题的算法流程图如图所示,相应的排序部分程序如下:(1选择排序选择排序(递增)的方法是找出数组元素中最小的数据,使它与第一个元素中的数据交换位置在余下的元素中继续找最小的元素,与第二个元素中的数据交换位置
……
选择排序选择排序(递增)的方法是算法演示第1
遍选择27363218d(1)d(2)d(3)d(4)j=2Min=1
27363218j=3Min=1
27363218j=4Min=j
18363227Min=1Forj=2to4
ifd(min)>d(j)thenmin=jNextj如果最小的数所在的位置不是1,则交换d(min)和d(1)的位置
如果找到更小的,用min记住它的编号
算法演示第1遍选择27363218d(1)d(2分析第1遍选择,j从2开始到4Min=1Forj=2to4ifd(min)>d(j)thenmin=jNextjIfmin<>1,交换d(1)和d(min)Min=2Forj=3to4ifd(min)>d(j)thenmin=jNextjIfmin<>2then交换d(2)和d(min)第2遍选择,j从3开始到4第3遍选择,j从4开始到4Min=3Forj=4to4ifd(min)>d(j)thenmin=jNextjIfmin<>3then交换d(3)和d(min)用i来表示次数的变化分析第1遍选择,j从2开始到4Min=1Min=2第2遍选程序实现Fori=1Tonum-1‘n个数,排序n-1次
Min=i
Forj=i+1Tonum'如果找到更小的,用min记住它的编号
Ifd(Min)>d(j)ThenMin=j
Nextj
IfMin<>iThen'如果最小的数所在的位置不是i,则交换
k=d(i):d(i)=d(Min):d(Min)=k
EndIfNexti数组元素的个数程序实现Fori=1Tonum-1PrivateSubCommand1_Click()'对8个数进行选择法排序List2.Clear'将排序后的列表数据清空Fori=1To7'n个数,排序n-1次
Min=i
Forj=i+1To8'如果找到更小的,用min记住它的编号
Ifd(Min)>d(j)ThenMin=j
Nextj
IfMin<>iThen'如果最小的数所在的位置不是i,则交换
k=d(i)
d(i)=d(Min)
d(Min)=k
EndIfNexti
Fori=1To8List2.AddItemStr(d(i))'在列表2中显示排序后的数据NextiEndSub选择法排序PrivateSubCommand1_Click()用选择排序算法对一组学生的身高数据进行升序排序,已知第一遍排序结束后的数据序列为166、169、177、175、172,则下列选项中可能是原始数据序列的是(
)A.175、177、169、166、172B.177、169、166、175、172C.166、177、169、175、172D.166、169、172、175、177B用选择排序算法对一组学生的身高数据进行升序排序,已知第一遍排2.有6位裁判为运动员评分,给出的分数分别为48、45、63、46、59、57。采用选择排序算法对其进行排序,若完成第一遍时的结果为:63、45、48、46、59、57,则完成第二遍时的结果是 (
)A.63、45、48、46、59、57B.63、59、57、48、45、46C.63、59、57、46、45、48D.63、59、48、46、45、57D2.有6位裁判为运动员评分,给出的分数分别为48、45、633.某校通过政府招投标中心采购一套多媒体教学设备,有5家单位参加竞标,竞标价分别为18万、17万、23万、15万、16万元人民币。若采用选择排序算法对标价从大到小排序,需要进行数据互换的次数是 (
)A.1 B.3 C.4 D.5B3.某校通过政府招投标中心采购一套多媒体教学设备,有5家单位4.圣诞节即将来临,某商场欲对仓库某货号商品进行补仓以应对即将举办的促销活动。6家供货商给出的报价分别为48、43、60、46、58、55,若采用选择排序算法对其进行从大到小排序,则第三遍的排序结果是 (
)CA.60、58、48、46、43、55 B.60、43、48、46、58、55C.60、58、55、46、43、48 D.60、58、55、48、46、434.圣诞节即将来临,某商场欲对仓库某货号商品进行补仓以应对即已知算法1与算法2都是排序算法,可能是冒泡排序或者选择排序,下面的表格反应的是在不同量的数据下,排序时进行数据交换的次数,分析算法1与算法2最有可能的排序算法分别是 (
)CA.冒泡排序冒泡排序 B.选择排序选择排序C.冒泡排序选择排序 D.选择排序冒泡排序已知算法1与算法2都是排序算法,可能是冒泡排序或者选择排序,下列关于排序的说法,错误的是 (
)A.相对而言,选择排序算法的效率比冒泡排序算法高B.冒泡排序算法和选择排序算法的都需要用到双循环结构C.对于n个无序数据,不管是冒泡排序还是选择排序,都要经过n-1遍加工D.冒泡排序算法的程序实现一般要用到数组变量k,而选择排序则不需要C下列关于排序的说法,错误的是 ()C小明编写了一个统计数组元素a(l)到a(n)中的“升序段”个数s(如图所示的数据序列,其“升序段”的个数等于3)的VB程序。部分程序代码如下:k=0s=0Fori=2TonIfa(i)>a(i-1)Then
Elsek=0EndIfIfk=1Thens=s+1NextiTextl.Text=Str(s)方框中的正确语句是 (
)A.k=k-1 B.K=1 C.K=-1 D.K=k+1D小明编写了一个统计数组元素a(l)到a(n)中的“升序段”个…Fori=1Ton-1
k=iForj=i+1TonIfd(j)<d(k)Thenk=jNextj
Ifi<>kThent=d(i):d(i)=d(k):d(k)=t
EndIfNexti…D8.下列VB程序段是选择法排序程序的主要部分。其中虚线框内代码用于寻找数组元素d(i)到d(n)的最小值。虚虚线框内代码运行结束时,保存最小值的数组元素一定是(
)A.d(n) B.d(j)C.d(i) D.d(k)D…D8.下列VB程序段是选择法排序程序的主要部分。其中虚线框有如下VB程序,运行时,点击“随机产生15个整数”按钮将随机产生15个1000以内的随机非负整数,如下图所示,PrivateSubCommand2_Click()Fori=1Ton-1k=iForj=i+1Ton
Ifa(j)<a(k)Thenk=jNextjIfi<>kThen
t=a(i):a(i)=a(k):a(k)=tEndIfNextiFori=1Ton
List2.AddItemStr(i)&“:”&Str(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宜宾职业技术学院《公共危机管理概论》2023-2024学年第二学期期末试卷
- 长丰县2025届数学五年级第二学期期末监测试题含答案
- 淮南职业技术学院《医学遗传学A》2023-2024学年第二学期期末试卷
- 太湖创意职业技术学院《项目评估》2023-2024学年第一学期期末试卷
- 南通理工学院《Hadoop技术与应用实训》2023-2024学年第一学期期末试卷
- 湛江市年模拟物理试题(三)
- 枣强中学高二上学期期末考试理数试题
- 建材市场销售技巧培训
- 2025装修合同范本3
- 精神病人卫生护理课件
- 一、中国经典话剧艺术赏析(引言)
- 22G101基础平法识图与钢筋计算
- 2024年专升本考试-专升本考试(机械设计基础)笔试历年真题荟萃含答案
- 对中标候选人的异议书
- 2024年北京市自来水集团长辛店分公司招聘笔试参考题库含答案解析
- 四年级英语 Lesson 14 Are You Short or Tall 全省一等奖
- 粉尘涉爆企业安全生产风险监测预警系统技术指导
- 遵义会议精神宣讲
- 慢性阻塞性肺疾病的常见病例分析
- CJJ-181-2012(精华部分)城镇排水管道检测与评估技术规程
- 【基于UASB+SBR的组合处理工艺的制药厂废水处理工艺设计12000字】
评论
0/150
提交评论