填空题 冒泡法排序 在教程中已介绍选择法、合并法排序,上例使用插入法排序,常用的排序方法还有冒泡法。 冒泡法排序与选择法排序相似,选择法排序在每一轮排序时找最大(递减顺序)数的下标,出了内循环(一轮排序结束),再交换最大数的位置;而冒泡法排序在每一轮排序时将相邻的数比较,当顺序不对就交换位置,出了内循环,最大数已冒出。 按递增顺序排序的程序如下: Private Sub Form_Click 1 Dim a,n/%,j/%,i/%,t a=Array(19,5,15,7,11,9,23,6,3,1) n=UboundA、 For i=0 To n-1 For j=0 To n-i-1 If a(j)>a(j+1)Then 23:a(j+1)=t End If Next j Next i For i=0 To UboundA、 Print a(i); Next I End Sub 请在程序中下划线处填入相应的内容。 为了提高效率,若在某一轮排序时,未发生位置交换,说明欲排序的序列已有序,排序就可结束。程序中只要增加一个逻辑变量来进行判断。程序如下: Private Sub Form_Click 4 Dim a,n/%,m/%,I/%,Tag As Boolean a=Array(1,5,6,7,4,13,23,26,31,51) n=UboundA、 For i=0 To n-1 Tag=False For j=0 To n-1-i If a(j) >a(j+1)Then 5 6: 7:a(j+1)=t End If Next j If 8 Next I For I=0 To UboundA、 Print a(i); Next i End Sub
  • 1、
【正确答案】 1、t=a(i) a(j)=a(j 1) Tag=True Tag为True,说明数次序不对,进行过交换。 t=a(i) a(j)=a(j 1) Not Tag Then Exit For 在某一轮比较时没有发生过数据位置交换,说明数组已有序,不必再进行下一轮的比较。    
【答案解析】