《冒泡排序》——Java实现

大循环中,每次与相邻的元素进行比较,确定一个最大元素,最大元素升序右移,一个小循环确定一个最大元素,那么每次小循环的次数也会少一次,平均时间复杂度是O(n^2)。

复制代码
 1 public class BubbleSort implements IArraySort{
 2 
 3 
 4     @Override
 5     public int[] sort(int[] arr) {
 6         // 复制数组,不对入参修改
 7         int[] newArr = Arrays.copyOf(arr, arr.length);
 8 
 9         for (int i = 1; i < newArr.length; i++) {
10             // 是否完成排序标志位
11             boolean sortFlag = true;
12 
13             for (int j = 0; j < newArr.length - i; j++) {
14                 if (newArr[j] > newArr[j+1]){
15                     int temp = newArr[j];
16                     newArr[j] = newArr[j+1];
17                     newArr[j+1] = temp;
18 
19                     sortFlag = false;
20                 }
21             }
22 
23             if (sortFlag){
24                 break;
25             }
26         }
27 
28         return newArr;
29     }
30 }
复制代码

 

posted @   huang1993  阅读(43)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示