對于數(shù)組(形如a數(shù)組:4、5、6、1、2、3或b數(shù)組:1、2、3、4、5、6),我們稱元素1為此二數(shù)組的拐點。為尋找此類遞增或循環(huán)遞增數(shù)組的拐點,可以用順序查找和對分查找的方法,通常相比之下對分查找算法較優(yōu),以下為使用對分法查找拐點的算法。
做法是比較中點與當(dāng)前查找范圍第1個數(shù)大小關(guān)系,用對分法使查找范圍逼近拐點;當(dāng)余下數(shù)組只有二個元素時,可根據(jù)此二元素大小關(guān)系得到拐點的位置。
依據(jù)上述描述設(shè)計了VB程序,界面如圖所示。請回答下列問題:
(1)對于循環(huán)遞增數(shù)組“9、10、11、12、13、14、15、16、17、18、19、20、1、2、3、4、5、6、7、8”,代碼中加框處執(zhí)行的次數(shù)為
4
4
次。
(2)請在橫線處填入合適的代碼。
Dim a(1To 20)As Integer
Private Sub Command1_Click ( ?。?br />Dim Low As Integer,High As Integer
Low=1
High=20
Do While High>Low
If
①
①
Then'當(dāng)只余下兩個元素時
If
②
②
Then
Label1.Caption=“拐點元素為“+Str(a(1))+“,下標(biāo)為“+Str(1)
Else
Label1.Caption=“拐點元素為“+Str(a(High))+“,下標(biāo)為“+Str(High)
End If
Exit Do
End If
m=(Low+High)\2If a(m)>=a(Low) Then
Low=m
Else
③
③
End If
Loop
End Sub
Private Sub Form_Load ( ?。?br />'生成循環(huán)遞增的數(shù)組a,代碼略
End Sub