第十九天 - 知识点总结

2016-12-26  本文已影响0人  DevilIncs
//泛型(generic) - 让类型不再是程序中的硬代码(hard code)
  //此处的 extends 不是继承而是泛型限定 限定T类型必须是Comparable 接口的子类型
  // T 类型必须是引用类型
  public static <T extends Comparable<T>> void bubbleSort(T[] array){
      boolean swapped = true;
      for(int i = 0; swapped && i < array.length - 1; i++){
          swapped = false;
          for(int j = 0; j < array.length - i - 1;j++){
              if(array[j].compareTo(array[j + 1]) > 0)
              {
                  T temp = array[j];
                  array[j] = array[j + 1];
                  array[j + 1] = temp;
                  swapped = true;
              }
          }
      }
  }
  
  public static <T> void bubbleSort(T[] array, Comparator<T> comp){
      boolean swapped = true;
      for(int i = 0; swapped && i < array.length - 1; i++){
          swapped = false;
          for(int j = 0; j < array.length - i - 1;j++){
              if(comp.compare(array[j], array[j + 1]) > 0)
              {
                  T temp = array[j];
                  array[j] = array[j + 1];
                  array[j + 1] = temp;
                  swapped = true;
              }
          }
      }
  }

这样的冒泡排序基本上可以应对所有情况

上一篇下一篇

猜你喜欢

热点阅读