【第22期】观点:IT 行业加班,到底有没有价值?

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中的冒泡排序算法-简单实例

冒泡算法的原理实现:(从小到大排序)   1:比较相邻的两个元素,如果第一个比第二个大就交换位置。   2:对每一对相邻的元素进行比较,从开始第一队到结尾的最后一对,这样最后的元素就是最大的了。 ...

冒泡算法简单例子_Java

冒泡算法之前用过,但是具体的忘了,今天试着写了一下,提醒下自己,当然程序复用性较差!   int []array =newint[6]; array[0] = 7; array[1] = 3;...

java实现数组的冒泡排序、选择排序代码

数组排序之冒泡排序: 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处package cn.lgt.sortarray;public class MaoPaoSort { ...
  • euller
  • euller
  • 2016-11-22 23:06
  • 4823

JAVA基础再回首(十一)——数组高级(冒泡排序和选择排序)、Arrays类、基本类型包装类、Integer类

JAVA基础再回首(十一)——数组高级(冒泡排序和选择排序)、Arrays类、基本类型包装类、Integer类 写完了博客,我又到文章的开头和你们说点题外话。 昨天说了所谓情商高,就是懂得好...

java学习3-冒泡排序对数组进行排序

原理:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 public class Sele...

写一个方法对任意引用数据类型数组进行排序(入门级慎看,很难!!!)

1. 写一个方法对任意引用数据类型数组进行排序。具体要求如下: 1) 方法声明为public  void sortArr(Object arr[]){  } 2) 方法中首先输出排序前数组内容,然后进...

【Java】数组--利用冒泡算法给日期排序

代码public class TestDateSort { public static void main(String[] args) { Date[] days = new...

黑马程序员——Java基础 数组排序的两种实现方法,选择和冒泡

作为Java语言的初学者,了解和掌握两个简单的排序方法,会让我们对Java学习有很大的帮助。 首先,可以让我们初学者,接触一些简单的程序算法,对以后学习更多的算法做好贮备。其次数组排序,可以让门熟悉数...

JAVA 数组的排序方法冒泡、选择、快速、数组递增

1冒泡法排序 public static void main(String[] args) { // TODO Auto-generated method stub int[] array ...

Java数组遍历、求最大值、选择排序、冒泡排序、二分查找

--------------android培训、java培训、期待与您交流!-------------- 数组是一组顺序存储的同一类型的固定数据结构,每个Java数组都包含一个length的变量,用来...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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