【排序】冒泡

package SortTest;
/*
 * 冒泡排序(从小到大)
 * 一趟一趟的比较,比较相邻元素的大小,每趟最大的元素沉入最后的位置
 * 稳定
 * 平均时间复杂度O(n*n)
 * 最坏时间复杂度O(n*n)
 * 空间复杂度O(1)
 * n较小时使用
 */
public class BubbleSort {
public static void bubbleSort(int[] arr) {
int length = arr.length;
int temp;
for (int i = 0; i < length - 1; i++){//外层循环表示比较的趟数,有i个数则最多需要比较 i-1 趟
boolean flag = false;//立flag看是否发生交换
for (int j = 0; j < 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){//如果flag为false,说明这趟没有发生交换,已经排序完成,跳出循环
break;
}
}
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值