资源简介 《冒泡排序》作业1、采用冒泡排序某数组a有5个元素,分别是88,110,48,64,35。采用冒泡排序对其进行排序,若完成某一遍时的结果是35,88,110,48,64,则完成下一遍时的结果是( )A. 35,88,110,48,64 B. 35,48,110,88,64C. 35,48,88,110,64 D. 35,48,64,88,1102、有如下程序段:s = ""For i = 1 To 3 For j = 7 To i + 1 Step -1 If a(j) < a(j - 1) Then t = a(j): a(j) = a(j - 1): a(j - 1) = t21世纪教育网版权所有 End If Next j s = s + Str(a(i))Next iText1.Text = s数组元素a(1)到a(7)的数据依次为“3,9,1,5,8,6,2”,经过该程序段“加工”后,文本框Text1中显示的内容是( ) 21教育网A. 1 2 3B. 9 8 6C. 3 9 1D. 8 6 23、n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮Command1,在列表框List2中显示这些数据按升序排序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如例16-2图所示。21cnjy.com例16-2图实现上述功能的VB代码如下,但加框处代码有错,请改正。Dim a(1 To 8) As IntegerDim n As IntegerPrivate Sub Form_Load()'n=8,排序前数据存储在数组a中,并在列表框Listl中显示'代码略End SubPrivate Sub Command1_Click()Dim flag As Boolean 'flag值为True表示一遍加工中发生过交换i=1flag=TrueDo While '(1)flag=FalseFor j=n To i+1 Step -1If a(j)k=a(j):a(j)=a(j-1):a(j-1)=kflag=TrueEnd IfNext ji=i+1LoopLabel3.Caption="排序过程的加工遍数为"+ '(2)For i=1 To nList2.AddItem Str(a(i))Next iEnd Sub 展开更多...... 收起↑ 资源预览