小周尝试一种新的数据排序方法,先将数据按照增量分成若干组,再分别对这几组数据进行排序并通过缩小增量直到增量为1的方法实现最终排序。如若要将数据“71,54,58,29,31,78,2”升序排序,增量的初值为3,则数据分为3组,为“71,29,2”“54,31”“58,78”,分别对各组数据排序后变为“2,31,58,29,54,78,71”,更新增量为1,最终通过后续处理实现排序。
待排序数据存储在数组a中(a(1)…a(n)),共有n个数据,要求升序排序
Dim a(0 To 100) As Integer Dim n As Integer Private Sub Command 1_Click() Dim i As Integer,m As Integer m=n\2 Do While '改错 For i=1To m Call jpsort(i,m) '调用过程jpsort() Next m=m\2 Loop '显示输出结果 End Sub Private Sub jpsort(start As Integer,w As Integer) For i=start To n Step w For j= ② To i+w Step-w '填空 If a(j-w) >a(j) Then t=a(j-w): ③ :a(j)=t '填空 End If Next Next End Sub 请回答以下问题:
(1)
若要修改窗体上显示的内容为“跳跃排序”,应修改的属性名是(单选,填字母:A .Text/B .Caption/C .Load) 。
(2)
划线部分的代码应填①;②;③。
(3)
若将虚线框中的程序段删除并要求使排序的结果不变,则应将Do While语句加框处的代码修改为。
答案: 【1】B
【1】a(j+1)=a(j)【2】((n-start)\w)*w+start【3】a(j-w)=a(j)
【1】m>=1或m>0