java冒泡排序的实现以及优化,2024年最新java大数据面试题及答案

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

package zks;

public class Main {

public static void main(String args[]){

int[] arr = {1,1,2,0,9,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]+“,”);

}

}

}

输出结果如下:

上面这个是最基本的冒泡排序方法,如果说数组数量比较大并且有一部分是本来就有序的,那么将会在此部分浪费时间。所有考虑到这种情况,可以事先设置一个标识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相比较

再次优化后代码如下:

package zks;

public class BubbleSort {

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

int j , k;

int flag = n ;//flag来记录最后交换的位置,也就是排序的尾边界

while (flag > 0){//flag>0的话说明排序未结束

k = flag; //k 来记录遍历的尾边界

flag = 0;

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

if(a[j-1] > a[j]){//前面的数字大于后面的数字就交换

//交换a[j-1]和a[j]

int temp;

最后

我想问下大家当初选择做程序员的初衷是什么?有思考过这个问题吗?高薪?热爱?

既然入了这行就应该知道,这个行业是靠本事吃饭的,你想要拿高薪没有问题,请好好磨练自己的技术,不要抱怨。有的人通过培训可以让自己成长,有些人可以通过自律强大的自学能力成长,如果你两者都不占,还怎么拿高薪?

架构师是很多程序员的职业目标,一个好的架构师是不愁所谓的35岁高龄门槛的,到了那个时候,照样大把的企业挖他。为什么很多人想进阿里巴巴,无非不是福利待遇好以及优质的人脉资源,这对个人职业发展是有非常大帮助的。

如果你也想成为一名好的架构师,那或许这份Java核心架构笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

中高级开发必知必会:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)**
[外链图片转存中…(img-HaCtMe5s-1713616689023)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值