温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java算法:使用冒泡算法对任何对象排序

发布时间:2020-07-22 03:44:31 阅读:275 作者:沙漏半杯 栏目:编程语言
Java开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

1.普通的冒泡排序方法只能对数组进行排序

 public static void bubbleSort(int[] numbers) {

  int temp; 

  boolean flag = true;

  int size = numbers.length;

  for (int i = 1; flag && i <= size - 1; i++) {

   flag = false;

   for (int j = 0; j < size - i; j++) {

    if (numbers[j] < numbers[j + 1]) {  

     temp = numbers[j];

     numbers[j] = numbers[j + 1];

     numbers[j + 1] = temp;

     flag = true;

    }

   }

  }

 }

2.对任何对象都可以进行排序

 /**

  * 用冒泡排序对任何对象排序

   *extends 在这里不表示继承的关系,而是类型的限定

  *Comparable类 用于比较两个对象的大小

  * 

  * @param x 对象

  */

 public static <T extends Comparable<T>> void bubbleSort(T[] x) {

  T temp;

  boolean flag = true;

  int size = x.length;

  for (int i = 1; flag && i <= size - 1; i++) {

   flag = false;

   for (int j = 0; j < size - i; j++) {

    if (x[j].compareTo(x[j + 1]) > 0) {

     temp = x[j];

     x[j] = x[j + 1];

     x[j + 1] = temp;

     flag = true;

    }

   }

  }

 }

3.在不知道具体的对象时,应该怎么使用冒泡排序

/*

*传入一个带泛型的比较器-->Comparator

*/

 public static <T extends Comparable<T>> void bubbleSort(T[] x,Comparator<T> comparator) {

  T temp;

  boolean flag = true;

  int size = x.length;

  for (int i = 1; flag && i < size - 1; i++) {

   flag = false;

   for (int j = 0; j < size - i; j++) {

    if (comparator.compare(x[j], x[j + 1]) > 0) {

     temp = x[j];

     x[j] = x[j + 1];

     x[j + 1] = temp;

     flag = true;

    }

   }

  }

 }

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×