当前位置: 高中信息技术 / 综合题
  • 1. (2020高三上·衢州月考) 小吴研究插入排序算法,若对无序数列5,2,9,5,3,利用传统的简单插入排序进行升序排序,其方法如下:

    首先将5取出,得到序列5;

    第二步将2取出,插入序列得到2,5;

    第三步将9取出,插入后得到2,5,9;

    第四步将5取出,插入后得到2,5,5,9;

    第五步将3取出,插入后得到2,3,5,5,9,排序完成。

    小吴对这种插入排序进行了一些改进,将无序数列存入a数组中,将排序后的数据存入b数组中,同时保证b数组不存在重复的数字。对于重复出现的数字,用cnt数组记录重复个数。例如无序数列8、6、7、4、4、9、1、9、9、8,a(1)~a(10)存储原数据,b(1)~b(6)存储排序后的不重复数据,cnt(1)~cnt(6)存储每个数字重复的个数,如图a所示。

    数组/下标

    1

    2

    3

    4

    5

    6

    b

    1

    4

    6

    7

    8

    9

    cnt

    1

    2

    1

    1

    2

    3

    图a

    程序运行后,自动随机生成原数组并显示在列表框List1中,点击按钮“开始”后,生成升序排序数组并显示在列表框List2中,程序运行界面如图b所示。

    图b

    请回答下列问题。

    1. (1) 若要在窗体载入后让窗体标题显示“排序改进算法”,则下列操作可行的是        (单选,填字母。)
      A . 直接将窗体属性栏中的“Text”属性值修改为“排序改进算法” B . 在程序的Form_Load()事件中写上代码 Form1.Caption =“排序改进算法” C . 在程序的Command1_Click()事件中写上代码Form1.Caption =“排序改进算法”
    2. (2) 请完成程序中的填空。

      Const n = 10

      Dim a(0 To 100) As Integer, b(0 To 100) As Integer, cnt(1 To 100) As Integer

      Dim Ln As Integer, pos As Integer  'Ln表示b数组的长度

      Function search(key As Integer)

          Dim i As Integer

          For i = 1 To Ln

              If b(i) >= key Then Exit For

          Next i

          search = i

      End Function

      Private Sub Command1_Click()

      Dim i As Integer, j As Integer

          Ln = 0

          For i = 1 To n

              pos =

              If b(pos) <> a(i) Then

                  Ln = Ln + 1

                  j = Ln

                  Do While j > pos

                      b(j) = b(j - 1)

                     

                      j = j - 1

                  Loop

                  b(j) = a(i)

                  cnt(pos) = 1

              Else

                  

              End If

          Next i

          For i = 1 To Ln

              For j = 1 To cnt(i)

                  List2.AddItem Str(b(i))

              Next j

          Next i

      End Sub

      Private Sub Form_Load()

          For i = 1 To n

              a(i) = Rnd() * 10 + 1

              List1.AddItem Str(a(i))

          Next i

      End Sub

    3. (3) 程序中加框处存在错误,请改正。

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