form1.vb

来自「Visual.Basic.NET实用编程百例-47.6M.zip」· VB 代码 · 共 364 行 · 第 1/2 页

VB
364
字号
        Me.lblEnd.Size = New System.Drawing.Size(60, 17)
        Me.lblEnd.TabIndex = 6
        Me.lblEnd.Text = "结束时间:"
        '
        'lblBegin
        '
        Me.lblBegin.AutoSize = True
        Me.lblBegin.BackColor = System.Drawing.SystemColors.ScrollBar
        Me.lblBegin.Cursor = System.Windows.Forms.Cursors.Default
        Me.lblBegin.ForeColor = System.Drawing.SystemColors.WindowText
        Me.lblBegin.Location = New System.Drawing.Point(160, 88)
        Me.lblBegin.Name = "lblBegin"
        Me.lblBegin.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.lblBegin.Size = New System.Drawing.Size(60, 17)
        Me.lblBegin.TabIndex = 5
        Me.lblBegin.Text = "开始时间:"
        '
        'Label3
        '
        Me.Label3.AutoSize = True
        Me.Label3.BackColor = System.Drawing.SystemColors.ScrollBar
        Me.Label3.Cursor = System.Windows.Forms.Cursors.Default
        Me.Label3.ForeColor = System.Drawing.SystemColors.WindowText
        Me.Label3.Location = New System.Drawing.Point(160, 24)
        Me.Label3.Name = "Label3"
        Me.Label3.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.Label3.Size = New System.Drawing.Size(54, 17)
        Me.Label3.TabIndex = 2
        Me.Label3.Text = "数组大小"
        '
        'Label2
        '
        Me.Label2.AutoSize = True
        Me.Label2.BackColor = System.Drawing.SystemColors.ScrollBar
        Me.Label2.Cursor = System.Windows.Forms.Cursors.Default
        Me.Label2.ForeColor = System.Drawing.SystemColors.WindowText
        Me.Label2.Location = New System.Drawing.Point(336, 8)
        Me.Label2.Name = "Label2"
        Me.Label2.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.Label2.Size = New System.Drawing.Size(66, 17)
        Me.Label2.TabIndex = 12
        Me.Label2.Text = "排序后数据"
        '
        'Label1
        '
        Me.Label1.AutoSize = True
        Me.Label1.BackColor = System.Drawing.SystemColors.ScrollBar
        Me.Label1.Cursor = System.Windows.Forms.Cursors.Default
        Me.Label1.ForeColor = System.Drawing.SystemColors.WindowText
        Me.Label1.Location = New System.Drawing.Point(8, 8)
        Me.Label1.Name = "Label1"
        Me.Label1.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.Label1.Size = New System.Drawing.Size(66, 17)
        Me.Label1.TabIndex = 0
        Me.Label1.Text = "未排序数据"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.BackColor = System.Drawing.SystemColors.ScrollBar
        Me.ClientSize = New System.Drawing.Size(492, 341)
        Me.Controls.Add(Me.cmbOrder)
        Me.Controls.Add(Me.txtSize)
        Me.Controls.Add(Me.cmbSorts)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.Button1)
        Me.Controls.Add(Me.lstSorted)
        Me.Controls.Add(Me.lstUnsorted)
        Me.Controls.Add(Me.lblIterations)
        Me.Controls.Add(Me.lblDuration)
        Me.Controls.Add(Me.lblEnd)
        Me.Controls.Add(Me.lblBegin)
        Me.Controls.Add(Me.Label3)
        Me.Controls.Add(Me.Label2)
        Me.Controls.Add(Me.Label1)
        Me.Cursor = System.Windows.Forms.Cursors.Default
        Me.ForeColor = System.Drawing.SystemColors.WindowText
        Me.Location = New System.Drawing.Point(97, 115)
        Me.Name = "Form1"
        Me.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
        Me.Text = "排序算法演示"
        Me.ResumeLayout(False)

    End Sub
#End Region
    Dim mArray() As Object

    Private Sub cmbSorts_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmbSorts.SelectedIndexChanged

        If cmbSorts.SelectedIndex > 4 Then
            cmbOrder.Enabled = False
        Else
            cmbOrder.Enabled = True
        End If

    End Sub

    Private Sub Button1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Button1.Click
        Dim I As Object
        Dim J As Object

        If Len(Trim(txtSize.Text)) = 0 Then txtSize.Text = "0"
        ReDim mArray(CDbl(txtSize.Text) - 1)

        Randomize()
        lstUnsorted.Items.Clear()
        For I = 0 To CDbl(txtSize.Text) - 1
            J = Int((32767 - (-32768) + 1) * Rnd() + (-32768))
            lstUnsorted.Items.Add(Str(J))
            mArray(I) = J
        Next

        Button2.Enabled = True

    End Sub

    Private Sub Button2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Button2.Click
        Dim I As Object

        Cursor = System.Windows.Forms.Cursors.WaitCursor

        lstSorted.Items.Clear()

        I = VB.Timer()
        lblBegin.Text = "开始时间: " & I
        gIterations = 0

        Select Case cmbSorts.SelectedIndex
            Case 0
                Call BubbleSort(mArray, cmbOrder.SelectedIndex)
            Case 1
                Call Insertion(mArray, cmbOrder.SelectedIndex)
            Case 2
                Call Bucket(mArray, cmbOrder.SelectedIndex)
            Case 3
                Call Selection(mArray, cmbOrder.SelectedIndex)
            Case 4
                Call ShellSort(mArray, cmbOrder.SelectedIndex)
            Case 5
                Call QuickSort(mArray, 0, UBound(mArray))
            Case 6
                Call Heap(mArray)
        End Select

        lblIterations.Text = "循环次数: " & Format(gIterations, "#,#")
        lblEnd.Text = "结束时间: " & VB.Timer()
        lblDuration.Text = "持续时间: " & VB.Timer() - I & " 秒!"

        For I = 0 To UBound(mArray)
            lstSorted.Items.Add(mArray(I))
        Next

        Cursor = System.Windows.Forms.Cursors.Default

    End Sub

    Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

        cmbOrder.Items.Add("升序")
        cmbOrder.Items.Add("降序")
        cmbOrder.SelectedIndex = 0

        cmbSorts.Items.Add("冒泡排序法")
        cmbSorts.Items.Add("插入排序法")
        cmbSorts.Items.Add("Bucket排序法")
        cmbSorts.Items.Add("选择排序法")
        cmbSorts.Items.Add("Shell排序法")
        cmbSorts.Items.Add("快速排序法")
        cmbSorts.Items.Add("Heap排序法")
        cmbSorts.SelectedIndex = 0

        lstUnsorted.Items.Add("-1322")
        lstUnsorted.Items.Add("2171")
        lstUnsorted.Items.Add("-511")
        ReDim mArray(2)
        mArray(0) = -1322
        mArray(1) = 2171
        mArray(2) = -511

    End Sub
End Class

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?