在此示例中,我們將學(xué)習(xí)在Java中執(zhí)行冒泡排序算法。
在學(xué)習(xí)Java中的冒泡排序算法之前,請確保您了解冒泡排序算法的工作原理。
//導(dǎo)入類
import java.util.Arrays;
import java.util.Scanner;
class Main {
//創(chuàng)建scanner的對象。
//接受用戶的輸入
Scanner input = new Scanner(System.in);
//執(zhí)行冒泡排序的方法
void bubbleSort(int array[]) {
int size = array.length;
//用于升序或降序排序
System.out.println("選擇排序順序:");
System.out.println("1表示升序\n2表示降序");
int sortOrder = input.nextInt();
//運(yùn)行循環(huán)兩次
//第一個循環(huán)訪問數(shù)組的每個元素
for (int i = 0; i < size - 1; i++)
//第二個循環(huán)在每次迭代中執(zhí)行比較
for (int j = 0; j < size - i - 1; j++)
//按升序?qū)?shù)組進(jìn)行排序
if (sortOrder == 1) {
//比較相鄰元素
if (array[j] > array[j + 1]) {
// 如果左側(cè)元素大于右側(cè),則交換
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
//按降序?qū)?shù)組排序
else {
// 比較相鄰元素
if (array[j] < array[j + 1]) {
//如果左側(cè)元素小于右側(cè),則交換
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
//main 方法
public static void main(String args[]) {
//創(chuàng)建數(shù)組
int[] data = { -2, 45, 0, 11, -9 };
//創(chuàng)建Main類的對象
Main bs = new Main();
//使用對象bs調(diào)用方法bubbleSort
//將數(shù)組作為方法參數(shù)傳遞
bs.bubbleSort(data);
System.out.println("升序排列的數(shù)組:");
//調(diào)用Arrays類的toString()
//將數(shù)據(jù)轉(zhuǎn)換為字符串
System.out.println(Arrays.toString(data));
}
}輸出 1
選擇排序順序: 1 表示升序 2 表示降序 1 排序后的數(shù)組: [-9, -2, 0, 11, 45]
在這種情況下,我們輸入 1。因此,程序按升序?qū)?shù)組進(jìn)行排序。
輸出 2
選擇排序順序: 1 表示升序 2 表示降序 2 排序后的數(shù)組: [45, 11, 0, -2, -9]
在這種情況下,我們輸入 2 。因此,程序按降序?qū)?shù)組進(jìn)行排序。
注意:我們已經(jīng)使用Java掃描器類從用戶那里獲取輸入。