冒泡排序

概念

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

举例

有一个数组,其中包含 1 5 8 9 11 556 32 587 把他从小到大排序

排序方法

package com.pv3.springboot_base.Utils;

public class Sort {

  public static void bubbleSort(int[] array) {
    if (array == null) {
      return;
    }

    int temp;
    for (int i = array.length - 1; i > 0; i--) {
      for (int j = 0; j < i; j++) {
        if (array[j] > array[j + 1]) {
          temp = array[j];
          array[j] = array[j + 1];
          array[j + 1] = temp;
        }
      }
    }
  }
}

使用演示

package com.pv3.springboot_base.Controller;

import com.pv3.springboot_base.Utils.Sort;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Arrays;

@RestController
public class SortController {

  @RequestMapping("/bubbleSort")
  public String bubbleSort() {
    // 1 5 8 9 11 556 32 587
    // 注意知识点: 数组是引用,不是复制
    int[] array = {1, 5, 8, 9, 11, 556, 32, 587};
    Sort.bubbleSort(array);
    System.out.println(Arrays.toString(array));
    return "sort.bubbleSort 冒泡排序演示";
  }
}

在Java中,所有对象都是通过引用进行操作的。 而数组也是一种对象。当将数组作为参数传递给方法时,传递的实际上就是该数组对象的引用在方法中对数组的所有操作,都会映射到原数组中,这一点也是Java面向对象的一个重要特点。

请注意,除了对象有这种特性外,整型、浮点型、布尔型等基本数据类型都不具备该特性。