写点什么

java 冒泡排序的实现以及优化

  • 2022 年 4 月 18 日
  • 本文字数:1260 字

    阅读完需:约 4 分钟

}


package zks;


public class Main {


public static void main(String args[]){


int[] arr = {1,1,2,0,9 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 ,33,21,7,13,3,35,65,22};


BubbleSort.Bubble(arr, arr.length);


for(int i = 0;i<arr.length;i++){


System.out.print(arr[i]+",");


}


}


}


输出结果如下:


![](https://img-blog.csdn.net/20180606175516673?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3prc180ODI2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/7 Java 开源项目【ali1024.coding.net/public/P7/Java/git】 0)


上面这个是最基本的冒泡排序方法,如果说数组数量比较大并且有一部分是本来就有序的,那么将会在此部分浪费时间。所有考虑到这种情况,可以事先设置一个标识 flag,如果此次循化下来发生了交换,则为 true,否则说明排序已完成,为 false。


代码如下:


package zks;


public class BubbleSort {


public static void Bubble2(int a[],int n){


int j, k = n;


boolean flag = true;//发生了交换就为 true, 没发生就为 false


while (flag){


flag=false;//每次开始排序前,都设置 flag 为未排序过


for(j=1; j<k; j++){


if(a[j-1] > a[j]){


int temp;


temp = a[j-1];


a[j-1] = a[j];


a[j]=temp;


//表示交换过数据;


flag = true;


}


}


k--;//减小一次排序的尾边界


}


}


}


结果如下:



在此优化的基础上考虑到,如果有一个包含 500 个数值的数组,前 100 个是无序的,后 400 个全部是有序排列好的并且后面的 400 个数值的最低值都大于前 100 个的最高值。如果用第二种方法的话,虽然也是只会比较 100 次,但是每一次都会与后面 400 位相比较,而用下面的方法只需要与后面 400 位比较一次,便会记录下这个标识然后设置尾边界,以后的 99 次便不会与后面 400 相比较


再次优化后代码如下:

最后

既已说到 spring cloud alibaba,那对于整个微服务架构,如果想要进一步地向上提升自己,到底应该掌握哪些核心技能呢?


就个人而言,对于整个微服务架构,像 RPC、Dubbo、Spring Boot、Spring Cloud Alibaba、Docker、kubernetes、Spring Cloud Netflix、Service Mesh 等这些都是最最核心的知识,架构师必经之路!下图,是自绘的微服务架构路线体系大纲,如果有还不知道自己该掌握些啥技术的朋友,可根据小编手绘的大纲进行一个参考。



如果觉得图片不够清晰,也可来找小编分享原件的 xmind 文档!


且除此份微服务体系大纲外,我也有整理与其每个专题核心知识点对应的最强学习笔记:


  • 出神入化——SpringCloudAlibaba.pdf

  • SpringCloud 微服务架构笔记(一).pdf

  • SpringCloud 微服务架构笔记(二).pdf

  • SpringCloud 微服务架构笔记(三).pdf

  • SpringCloud 微服务架构笔记(四).pdf

  • Dubbo 框架 RPC 实现原理.pdf

  • Dubbo 最新全面深度解读.pdf

  • Spring Boot 学习教程.pdf

  • SpringBoo 核心宝典.pdf

  • 第一本 Docker 书-完整版.pdf

  • 使用 SpringCloud 和 Docker 实战微服务.pdf

  • K8S(kubernetes)学习指南.pdf



另外,如果不知道从何下手开始学习呢,小编这边也有对每个微服务的核心知识点手绘了其对应的知识架构体系大纲,不过全是导出的 xmind 文件,全部的源文件也都在此!



用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
java冒泡排序的实现以及优化_Java_爱好编程进阶_InfoQ写作平台