package sort;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
/**
* @author taoke
* @desc 冒泡排序
* @email 1504806660@qq.com
* @date 2022/1/5
*/
public class BubbleSort {
public static void main(String[] args) {
int[] arr = new int[80];
for (int i = 0; i < 80; i++) {
arr[i] = (int) (Math.random() * 80);
}
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
System.out.println(Arrays.toString(sort(arr)));
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
/**
* 冒泡排序
* 通过对待排序数组从前往后,依次比较相邻元素的值,
* 每次都把较大的一个数和较小的数交换位置,
* 每一次内层for循环都把当前剩下的数中交换出最大的一个,
* 内层for循环每执行一次,内层for循环就少执行一次即 arr.length - 1 - i
*
* @param arr 待排序数组
* @return 排序后数组
*/
public static int[] sort(int[] arr) {
//临时变量,用于交换数据
int temp;
//定义一个标识,如果没有发生交换则停止排序
boolean flag;
for (int i = 0; i < arr.length - 1; i++) {
flag = true;
for (int j = 0; j < arr.length - 1 - i; j++) {
//相邻元素两两交换
if (arr[j] > arr[j + 1]) {
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
flag = false;
}
}
if (flag) {
break;
}
}
return arr;
}
}
数据结构与算法-排序-冒泡排序
于 2022-01-05 15:45:34 首次发布
本文介绍了Java实现的冒泡排序算法,详细解读了排序过程,并展示了如何通过优化减少不必要的交换。通过作者@taoke的代码实例,学习者可以理解冒泡排序的工作原理并应用于实际项目。

3190

被折叠的 条评论
为什么被折叠?



