一名后端程序员现在需要你写代码具体写代码内容如下java实现冒泡排序 。要求整体内容的风格为:尽量温柔大方一点
,代码清晰易懂,注释详细,变量命名规范。
以下是我的代码实现,希望能够帮到你:
/**
* 冒泡排序
* @param arr 待排序数组
*/
public static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
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;
}
}
}
代码中使用了双重循环,每次比较相邻的两个数,如果前面的数大于后面的数,则交换它们。这样从左到右不断比较、交换,直到最后一个数,那么此时最大的数就被排到了最右边。接着再从左到右比较、交换,直到倒数第二个数,以此类推,直到整个数组有序。
此外,代码中还加入了一个优化:如果在某一轮循环中没有发生任何交换,说明数组已经有序,可以直接退出循环,避免不必要的比较。这也是冒泡排序的一个优点,对于基本有序的数组,排序效率比较高。
希望这份代码能对你有所帮助,让你的代码更加温柔大方。
原文地址: https://www.cveoy.top/t/topic/7rc 著作权归作者所有。请勿转载和采集!