通用冒泡排序Java程序
时间:2020-01-09 10:35:28 来源:igfitidea点击:
在这篇文章中,我们将看到如何以Java的泛型类编写冒泡排序程序,该程序可用于不同数据类型的数组。
冒泡排序-Java通用类
在用于冒泡排序的通用类中,我们使用有界参数将类型限制为Comparable类型。这样做是因为我们确实需要比较要使用Comparable的compareTo()方法进行排序的元素。
import java.util.Arrays;
public class BubbleSortGeneric<T extends Comparable<? super T>> {
T[] array;
BubbleSortGeneric(T[] array){
this.array = array;
}
private T[] bubbleSort(){
for(int i = array.length; i > 1; i--){
for(int j = 0; j < i - 1; j++){
//if greater swap elements
if(array[j].compareTo(array[j+1]) > 0){
swapElements(j, array);
}
}
}
return array;
}
private void swapElements(int index, T[] arr){
T temp = arr[index];
arr[index] = arr[index+1];
arr[index+1] = temp;
}
public static void main(String[] args) {
Integer[] intArr = {47, 85, 62, 34, 7, 10, 92, 106, 2, 54};
BubbleSortGeneric<Integer> bsg1 = new BubbleSortGeneric<Integer>(intArr);
Integer[] sa1 = bsg1.bubbleSort();
System.out.println("Sorted array- " + Arrays.toString(sa1));
String[] strArr = {"Earl", "Robert", "Asha", "Arthur"};
BubbleSortGeneric<String> bsg2 = new BubbleSortGeneric<>(strArr);
String[] sa2 = bsg2.bubbleSort();
System.out.println("Sorted array- " + Arrays.toString(sa2));
}
}
输出:
Sorted array- [2, 7, 10, 34, 47, 54, 62, 85, 92, 106] Sorted array- [Arthur, Asha, Earl, Robert]

