开发者社区 问答 正文

冒泡排序法 vb

对输入的整数(6,3,7,8,2,1)用冒泡排序法按递增顺序排序

展开
收起
知与谁同 2018-07-16 13:37:13 1658 分享 版权
3 条回答
写回答
取消 提交回答
  • Dim A, i As Integer, j As Integer, m As Integer
    A = Array(6, 3, 7, 8, 2, 1)
    For i = LBound(A) To UBound(A) - 1
    For j = i + 1 To UBound(A)
    If A(i) > A(j) Then
    m = A(i): A(i) = A(j): A(j) = m
    End If
    Next j
    Next i
    For i = LBound(A) To UBound(A)
    Print A(i);
    Next i
    2019-07-17 22:49:41
    赞同 展开评论
  • 胜天半子

    Option Base 1

    Private Sub Command1_Click()

    Dim a

    Dim b As Integer

    Dim i As Integer

    Dim j As Integer

    a = Array(6, 3, 7, 8, 2, 1)

    Print "排序前为";

    For i = 1 To 6

    Print a(i);

    Next i

    For i = 1 To 5

      For j = 1 To 6 - i

         If a(j) > a(j + 1) Then

          b = a(j + 1)

          a(j + 1) = a(j)

          a(j) = b

          End If

        Next j

     Next i

     Print

     Print "排序后为";

     For i = 1 To 6

       Print a(i);

     Next i

    End Sub

    2019-07-17 22:49:41
    赞同 展开评论
  • 冒泡法排序(升序)
    基本思想:(将相邻两个数比较,小的调到前头)
    1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”;
    2)第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相邻比较后得次大的数;
    3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。
    程序段如下
    For i = 1 To n - 1
    For j = 1 To n-i
    If a(j) > a(j+1) Then
    temp=a(j): a(j)=a(j+1): a(j+1)=temp
    End if
    Next j
    Next i
    2019-07-17 22:49:41
    赞同 展开评论
问答地址: