bubblesorter.java

来自「《深入浅出设计模式》的完整源代码」· Java 代码 · 共 25 行

JAVA
25
字号
package bubblesorter;
//使用模板模式可以分隔冒泡排序的方法进一个抽象类,而让它的子类具体实现Swap和
//outOfOrder方法,可以扩展不同对象采用同样冒泡排序法算法:
//冒泡排序算法模板类:
public abstract class BubbleSorter {
  private int operations = 0;
  protected int length = 0;
  protected int doSort () {
    operations = 0;
    if (length <= 1)
      return operations;
    for (int nextToLast = length - 2;
         nextToLast >= 0; nextToLast--)
      for (int index = 0; index <= nextToLast; index++) {
        if (outOfOrder (index))
          swap (index);
        operations++;
      }
    return operations;
  }
  //前后数据转换位置
  protected abstract void swap (int index);
  //检查前者数据是不是大于后者数据
  protected abstract boolean outOfOrder (int index);
}

⌨️ 快捷键说明

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