溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-07-22 03:44:31 來源:網(wǎng)絡 閱讀:261 作者:沙漏半杯 欄目:編程語言

1.普通的冒泡排序方法只能對數(shù)組進行排序



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

? ? }


? ?}


? }


?}


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI