冒泡排序 先确定最后一个位置 第二次确定倒数第二个位置

    public static void main(String[] args) {
        int[] arr = {1, 2, 4, 3,5,8,7};
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }

        }
        for (int i = 0; i < arr.length; i++) {

            System.out.print(arr[i] + "\t");
        }


    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一个用VBA编写的冒泡排序: ``` Sub BubbleSort(arr() As Integer) Dim i As Integer Dim j As Integer Dim temp As Integer For i = LBound(arr) To UBound(arr) - 1 For j = LBound(arr) To UBound(arr) - 1 - i If arr(j) > arr(j + 1) Then temp = arr(j) arr(j) = arr(j + 1) arr(j + 1) = temp End If Next j Next i End Sub ``` 该函数接受一个整数数组作为参数,并将其按升序排序。排序算法冒泡排序,其中通过相邻元素的比较和交换来对数组进行排序。排序结束后,原始数组将按升序排序。 该函数使用两个嵌套的循环来实现冒泡排序。外层循环从数组的第一个元素到倒数第二个元素遍历,内层循环从数组的第一个元素到未排序的最后一个元素遍历。在每个内层循环迭代中,如果当前元素比它后面的元素大,则它们交换位置。这样,每个迭代都将最大的元素“冒泡”到数组的末尾。内层循环完成后,外层循环继续,并且由于最后一个元素已经是排序好的,因此可以忽略它。最终,整个数组将按升序排序。 使用示例: ``` Sub ExampleUsage() Dim arr(1 To 5) As Integer arr(1) = 5 arr(2) = 3 arr(3) = 1 arr(4) = 4 arr(5) = 2 BubbleSort arr For i = LBound(arr) To UBound(arr) Debug.Print arr(i) Next i End Sub ``` 运行 ExampleUsage 子例程将会对整数数组 arr 进行冒泡排序,并在 Immediate 窗口中输出排序后的结果。 ### 回答2: 下面是一个用VBA编写的冒泡排序算法: Sub BubbleSort(arr() As Integer) Dim i As Integer, j As Integer Dim temp As Integer For i = LBound(arr) To UBound(arr) - 1 For j = LBound(arr) To UBound(arr) - i - 1 If arr(j) > arr(j + 1) Then temp = arr(j) arr(j) = arr(j + 1) arr(j + 1) = temp End If Next j Next i End Sub 代码中的BubbleSort过程接受一个整数数组作为参数。在主循环中,进行数组的长度次迭代,每一次迭代将找出当前未排序部分的最大元素,并将其放置到数组的正确位置。 内层循环用于比较相邻两个元素的大小,并在需要时进行交换。如果前一个元素大于后一个元素,就交换它们的位置。 使用该冒泡排序算法,可以实现对一个整数数组的排序。调用示例代码如下: Sub Main() Dim arr() As Integer arr = Array(5, 2, 8, 1, 9) BubbleSort arr Dim i As Integer For i = LBound(arr) To UBound(arr) Debug.Print arr(i) Next i End Sub 在示例代码中,首创建了一个整数数组arr,并将其初始化为{5, 2, 8, 1, 9}。然后调用BubbleSort过程对该数组进行排序。最后,使用循环遍历排序后的数组,并使用Debug.Print语句输出每个元素的值。输出结果为1, 2, 5, 8, 9。 ### 回答3: 下面是一个使用VBA编写的冒泡排序的例子: ```vba Sub BubbleSort(arr() As Integer) Dim i As Integer, j As Integer Dim temp As Integer Dim n As Integer n = UBound(arr) - LBound(arr) + 1 For i = 0 To n - 1 For j = 0 To n - i - 2 If arr(j) > arr(j + 1) Then temp = arr(j) arr(j) = arr(j + 1) arr(j + 1) = temp End If Next j Next i ' 输出排序后的数组 For i = 0 To n - 1 Debug.Print arr(i) Next i End Sub Sub TestBubbleSort() Dim arr() As Integer Dim i As Integer ' 初始化数组 ReDim arr(0 To 9) arr(0) = 4 arr(1) = 2 arr(2) = 8 arr(3) = 5 arr(4) = 1 arr(5) = 3 arr(6) = 9 arr(7) = 6 arr(8) = 7 arr(9) = 0 ' 调用冒泡排序算法 BubbleSort arr End Sub ``` 以上代码首定义了一个`BubbleSort`子程序,其中`arr()`是待排序的数组。然后使用嵌套的循环实现了冒泡排序算法最后使用`Debug.Print`将排序后的数组输出到Immediate窗口。 为了测试冒泡排序算法,我还编写了一个`TestBubbleSort`子程序,其中初始化了一个测试用的数组,并调用了`BubbleSort`子程序。 运行`TestBubbleSort`,即可在Immediate窗口中看到排序后的结果。 请注意,以上代码仅仅是一个简单的示例,实际应用中可能需要更复杂的条件判断或者对其他类型的数据进行排序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值