用java生成一个冒泡排序的算法
下面是使用Java语言实现冒泡排序的算法:
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {5, 8, 1, 3, 9, 6};
System.out.println("排序前的数组:");
printArray(arr);
bubbleSort(arr);
System.out.println("排序后的数组:");
printArray(arr);
}
/**
* 冒泡排序
* @param arr 待排序的数组
*/
public static void bubbleSort(int[] arr) {
int n = arr.length;
// 外层循环控制排序轮数
for (int i = 0; i < n - 1; i++) {
boolean flag = false; // 标记本轮是否有元素交换
// 内层循环控制每轮比较次数
for (int j = 0; j < n - i - 1; j++) {
// 如果前者大于后者,则交换它们的位置
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true; // 标记本轮有元素交换
}
}
// 如果本轮没有元素交换,则说明已经排好序,可以直接退出外层循环
if (!flag) {
break;
}
}
}
/**
* 打印数组元素
* @param arr 待打印的数组
*/
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
在上述代码中,我们定义了一个 bubbleSort 方法来实现冒泡排序的逻辑。该方法中,外层循环控制排序轮数,内层循环控制每轮比较次数。在每轮比较中,如果前者大于后者,则交换它们的位置。同时,我们使用一个 flag 变量来标记本轮是否有元素交换,如果没有,则说明已经排好序,可以直接退出外层循环。
我们还定义了一个 printArray 方法来打印数组元素,方便查看排序前后的数组情况。在 main 方法中,我们定义了一个初始数组,然后调用 bubbleSort 方法进行排序,并使用 printArray 方法打印排序前后的数组
原文地址: http://www.cveoy.top/t/topic/cSLD 著作权归作者所有。请勿转载和采集!