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