请帮我用java语言写一个冒泡排序算法,时间复杂度要求低
时间: 2024-05-15 13:16:56 浏览: 98
冒泡排序的时间复杂度是 O(n^2),如果需要更低的时间复杂度,可以考虑使用其他排序算法,比如归并排序或快速排序。
以下是冒泡排序的Java代码:
```
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
boolean swapped = false;
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换arr[j]和arr[j+1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
// 如果没有发生交换,说明已经有序,可以提前退出排序
if (!swapped) {
break;
}
}
}
```
该算法的基本思路是,每次从数组的第一个元素开始,依次比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置。经过一轮比较后,最大的元素就被移动到了数组的最后面。重复以上操作,直到整个数组有序为止。
阅读全文