大学曾经学过最简单的算法,工作后的总结优化,BubbleSort。

68 阅读1分钟

public class BubbleSort {

/**
 * @name: sort
 * @description:   优化冒泡排序方法
 * @param array
 * @return: void
 * @date: 2020/11/5 10:45 上午
 * @auther: wangyanfei
 *
*/
//  优化冒牌排序

public static void sort(int array[]) {

  // 声明中间变量
  int temp = 0;
  // 声明最后一次交换位置
  int lastExchengeIndex = 0;
  // 设置数据交换的边界
  int sortBorder = array.length - 1;
  for (int i = 0; i < array.length; i++) {
      // 声明有序标记
      boolean isSorted = true;
      for (int j = 0; j < sortBorder; j++) {
          // 判断前一个大于下一个元素 交换位置
          if (array[j] > array[j+1]) {
              temp = array[j];
              array[j] = array[j+1];
              array[j+1] = temp;
              // 如何不是有序位置发生改变 设置有序标记
              isSorted = false;
              // 更新最后一次交换位置
              lastExchengeIndex = j;
          }
      }
      // 将数组边界值更新 变小
      sortBorder = lastExchengeIndex;
      // 如果数组有序则跳出内层循环
      if (isSorted) {
          break;
      }
  }

}

public static void main(String[] args) {

  int[] array = new int[] {1, 3, 4, 8, 2, 10, 5, 7, 6, 9};
  sort(array);
  System.out.println(Arrays.toString(array));

} }