第十九天 - 知识点总结

//泛型(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;
              }
          }
      }
  }

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容