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

原创 2013年12月05日 20:35:11

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;
    }

   }

  }

 }

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

java中冒泡排序,根据对象的属性,排对象

主程序排序: public class TestDmo { public static void main(String[] args) { List list=getData(); ...
  • zhaihaohao1
  • zhaihaohao1
  • 2017年06月26日 09:05
  • 180

java将list集合冒泡排序

java将List集合进行冒泡排序。。。
  • xiaosheng_papa
  • xiaosheng_papa
  • 2015年01月05日 13:55
  • 4172

java编程题:用Java实现一个冒泡排序算法

/** * java编程题:用Java实现一个冒泡排序算法 */ public class Test { public static void main(String[] args) { ...
  • min996358312
  • min996358312
  • 2017年03月21日 16:07
  • 2581

【排序算法】冒泡排序原理及Java实现

冒泡排序顾名思义就是整个过程像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行...
  • jianyuerensheng
  • jianyuerensheng
  • 2016年04月26日 21:26
  • 7242

java 排序算法实现 其一:冒泡排序

冒泡排序法的java和C++实现
  • sinat_22013331
  • sinat_22013331
  • 2014年10月17日 11:52
  • 307

冒泡排序算法 Java 实现过程及详解

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已...
  • youcharming
  • youcharming
  • 2014年12月25日 23:23
  • 3429

[排序算法]--冒泡排序的三种实现(Java)

冒泡排序是非常好理解的,以从小到大排序为例,每一轮排序就找出未排序序列中最大值放在最后。 设数组的长度为N: (1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。(2)这样...
  • u010853261
  • u010853261
  • 2017年02月06日 12:53
  • 4810

八大排序算法Java

概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 ...
  • Happy_wu
  • Happy_wu
  • 2016年07月06日 17:57
  • 29440

算法 -- Java实现冒泡排序(图解 + 代码实现)

算法 -- Java实现冒泡排序(图解 + 代码实现)...
  • feng2qing
  • feng2qing
  • 2016年12月24日 16:50
  • 1640

Java中的冒泡排序算法-简单实例

冒泡算法的原理实现:(从小到大排序)   1:比较相邻的两个元素,如果第一个比第二个大就交换位置。   2:对每一对相邻的元素进行比较,从开始第一队到结尾的最后一对,这样最后的元素就是最大的了。   ...
  • qq_36880602
  • qq_36880602
  • 2017年04月10日 20:02
  • 1044
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java算法:使用冒泡算法对任何对象排序
举报原因:
原因补充:

(最多只允许输入30个字)