16.小明基于冒泡排序思想設(shè)計了一個改進的排序算法。該算法先用冒泡法將數(shù)組a中奇數(shù)位置的元素、偶數(shù)位置的元素分別進行排序,然后再進行后續(xù)處理。算法的VB程序段如下,但加框處代碼有錯,請改正。 ’待排序數(shù)據(jù)存儲在數(shù)組a中(a(1)~a(n)),要求升序排列 For i=1 To (n-1)\2 For j=1 To n-i*2 If Then t=a(j):a(j)=a(j+2):a(j+2)=t End If Next j Next i For i=1 To n\2 j=2*i-1 If a(j)>a(j+1)Then t=a(j):a(j)=a(j+1):a(j+1)=t Next i For i=Step 2 t=a(i):j=i-1 Do While t<a(j) a(j+1)=a(j):j=j-1 Loop a(j+1)=t Next i
個。 (2)小李根據(jù)上述描述,設(shè)計了一個統(tǒng)計各段“非重疊塊”、“重疊塊”和剩余段中元素個數(shù)的算法。算 法的VB程序如下,請在橫線處填入合適的代碼。 Const n=18,m=6 Dim a(1 To n) As Integer Dim b(1 To 2*m) As Integer 'b(1)、b(2)為第1區(qū)間的下限和上限,b(3)、b(4)為第2區(qū)間的下限和上限,… Dim c(1 To 2*m+1)As Integer '數(shù)組c用于保存統(tǒng)計結(jié)果: 'c(1)、c(2)分別存儲第1段“非重疊塊”和“重疊塊”的元素個數(shù), 'c(3)、c(4)分別存儲第2段“非重疊塊”和“重疊塊”的元素個數(shù),… 'c(2m-1)存儲第m段“非重疊塊“元素個數(shù),c(2m)存儲第m段“重疊塊“元素個數(shù)(值為0) 'c(2m+1)存儲剩余段元素個數(shù) Private Sub Command1_Click ( ?。?br />Dim i As Integer,p As Integer,L As Integer,LL As Integer '讀取n個數(shù)據(jù)并保存在數(shù)組a中,代碼略 '讀取m個區(qū)間的下限和上限并保存在數(shù)組b中,代碼略 For i=1 To 2*m+1 c(i)=0 Next i i=1:p=1 L=0:LL=0 Do While
If IsIn(i,p) Then If IsIn(i,p+1)Then LL=LL+1 Else
LL=0 End If i=i+1 Else c(2*p-1)=L c(2*p)=LL L=0:LL=0 p=p+1 End If Loop If i<=n Then c(2*p-1)=n-i+1 Else c(2*p-1)=L c(2*p)=LL End If '輸出統(tǒng)計結(jié)果,代碼略 End Sub '函數(shù)IsIn用來判斷a(i)值是否屬于第p區(qū)間 Function IsIn(i As Integer,p As Integer) As Boolean If p>m Then IsIn=False Else If