跳到主要内容

Java程序实现冒泡排序算法

要理解这个例子,你需要了解以下 Java 编程 主题的知识:

示例:Java程序实现冒泡排序算法

// 导入类
import java.util.Arrays;
import java.util.Scanner;

class Main {

// 创建 Scanner 对象
// 以从用户那里获取输入
Scanner input = new Scanner(System.in);

// 方法执行冒泡排序
void bubbleSort(int array[]) {
int size = array.length;

// 选择升序或降序排序
System.out.println("请选择排序方式:");
System.out.println("1 代表升序 \n2 代表降序");
int sortOrder = input.nextInt();

// 运行两次循环
// 第一次循环访问数组的每个元素
for (int i = 0; i < size - 1; i++)

// 第二次循环在每次迭代中执行比较
for (int j = 0; j < size - i - 1; j++)

// 以升序排序数组
if (sortOrder == 1) {
// 比较相邻元素
if (array[j] > array[j + 1]) {

// 如果左侧元素大于右侧,则交换
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}

// 以降序排序数组
else {
// 比较相邻元素
if (array[j] < array[j + 1]) {

// 如果左侧元素小于右侧,则交换
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}

}

// 驱动代码
public static void main(String args[]) {

// 创建数组
int[] data = { -2, 45, 0, 11, -9 };

// 创建 Main 类的对象
Main bs = new Main();

// 使用对象 bs 调用 bubbleSort 方法
// 将数组作为方法参数传递
bs.bubbleSort(data);
System.out.println("按升序排列的数组:");

// 调用 Arrays 类的 toString() 方法
// 将 data 转换为字符串
System.out.println(Arrays.toString(data));
}
}

输出 1

请选择排序方式:
1 代表升序
2 代表降序
1
排序后的数组:
[-9, -2, 0, 11, 45]

在这种情况下,我们输入了 1。因此,程序按升序排序数组。

输出 2

请选择排序方式:
1 代表升序
2 代表降序
2
排序后的数组:
[45, 11, 0, -2, -9]

在这种情况下,我们输入了 2。因此,程序按降序排序数组。

如果你想了解更多关于冒泡排序算法的信息,请访问 冒泡排序算法

注意:我们使用了 Java Scanner 类 来获取用户的输入。