Java函数实现基本冒泡排序算法
发布时间:2023-06-18 10:16:32
冒泡排序是一种简单的排序算法,它的基本思想是重复地遍历要排序的元素列,每次比较相邻的两个元素,如果顺序不正确就交换它们的位置,直到遍历了整个列,这样一次遍历后,就可以确保序列中最大(或最小)的元素已经移动到了序列的末尾,然后再次从头开始重复这样的操作,直到整个序列有序。
下面是Java语言实现基本冒泡排序算法的代码:
public class BubbleSort {
public static void bubbleSort(int[] arr) {
int temp = 0;
boolean flag = false;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = true;
}
}
if (!flag) {
break;
} else {
flag = false;
}
}
}
public static void main(String[] args) {
int[] arr = {5, 3, 8, 6, 4};
bubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
}
以上代码实现了一个BubbleSort类,其中定义了一个静态方法bubbleSort用于实现排序。
该方法的参数是一个整型数组arr,表示要排序的数据列。在方法中,先定义一个变量temp用于交换两个元素的值,以及一个变量flag用于标记在每次循环中是否进行了元素交换操作。
外层循环控制循环次数,内层循环用于比较相邻的两个元素。在每次比较中,如果前一个元素比后一个元素大,就将它们交换位置,并将flag标记为true表示进行了元素交换操作。
在内层循环结束后,如果flag为false,表示本轮循环中没有进行元素交换操作,也就意味着数据列已经是有序的了,因此可以直接跳出外层循环。否则,将flag重新置为false,继续下一轮循环。
最后,在main方法中,定义了一个测试数据列{5, 3, 8, 6, 4},并调用bubbleSort方法对其进行排序,最后输出排序结果。运行程序,控制台输出的结果如下:
[3, 4, 5, 6, 8]
可以看到,程序成功对测试数据列进行了排序,而且排序结果正确。
总之,Java函数实现基本冒泡排序算法并不难,只需要嵌套一个双重循环,每次比较相邻的两个元素并交换其位置,就可以实现排序。
