通用冒泡排序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]