冒泡排序
作者:
黑色海鸥 | 来源:发表于
2019-11-05 18:03 被阅读0次/**
* 冒泡排序,a是数组,n表示数组大小
*/
public static void bubbleSort(int[] a, int n) {
if (n <= 1) return;
for (int i = 0; i < n; ++i) {
// 提前退出标志位
boolean flag = false;
for (int j = 0; j < n - i - 1; ++j) {
if (a[j] > a[j + 1]) { // 交换
int tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
// 此次冒泡有数据交换
flag = true;
}
}
if (!flag) break; // 没有数据交换,提前退出
}
}
/**
* 向下冒泡。可能比冒泡更易懂
*/
private static void bubbleDownSort(int[] arr) {
int len = arr.length;
if (len == 1) return;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] > arr[j]) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
本文标题:冒泡排序
本文链接:https://www.haomeiwen.com/subject/gheebctx.html
网友评论