当前位置: 高中信息技术 / 综合题
  • 1. (2020高三上·温州月考) 小温编写了一个有关环形数据排序的VB程序,实现如下功能:排序前的原始数据在窗体左边环形显示,单击“排序”按钮Command1后,原始数据中最小元素的位置固定不变,从该位置开始数据按逆时针升序,排序后的数据在右边环形显示。例如,排序前a(1)到a(10)的数据依次为“1,11,19,18,016,8,9,17,4",按顺时针顺序在窗体左边环形显示,则排序后a(1)到a(10)的数据依次为9,4,1,19,18,17,16,11",在窗体右边环形显示。程序运行界面如图所示。

    请回答下列问题。

    1. (1) 该环形数据排序的VB程序主要采用(选填:冒泡排序/选择排序)算法。
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Constn= 10

      Dim a(1 To n) As Integer

      Private Sub Command1_ Click()

           Dim Left As Integer, Right As Integer, Lstart As Integer, Rstart As Integer

           Dim i As Integer, j As Integer, t As Integer, s As String

           '随机生成n个不重复元素的数组a,并在左边环形显示,代码略

           k= 1

           For i= 2 Ton

               If a(i) < a(k) Thenk=i

           Next i

           Lstart = (k+n- 2) Mod n+ 1: Rstart= k Mod n+ 1

           i= 1

           Do Whilei<= (n-1)\2

               Left = Lstart

               For j= 1 To

                   p= (Left+ n-2) Mod n+ 1

                   If a(Left) > a(p) Then

                       t= a(Left): a(Left) = a(p): a(p)= t

                   End If

                   Left= p

               Next j

               Rstart= Rstart Mod n + 1

               Right = Rstart

               Do While

                   p=RightModn+1

                   If  Then

                       t= a(Right): a(Right) = a(p): a(p)=t

                   End If

                   Right= p

               Loop

               Lstart =

                i=i+ 1

           Loop

           排序后的数据在右边环形显示,代码略

      End Sub

    3. (3) 程序中加框处代码有错,请改正。

微信扫码预览、分享更方便