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 类 来获取用户的输入。