Java的冒泡排序很难_冒泡排序就是这么容易

a3c40260fc6111d9de42c5114e5a5929.png

愚昧者怨天尤人,无能者长吁短叹,儒弱者颓然放弃。

冒泡排序就是这么容易

welcome rodert

冒泡排序(Bubble Sort)

科班的大多在学校时都学过数据结构和算法,不论是做算法还是做业务,排序都是经常要打交道的,还记得冒泡排序吗?一起来看看

介绍

61175450ef79e2e4b9ef121a100e555b.png

【百度百科】:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

实质:把大(小)的元素往前(后)调,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。

时间复杂度: O(n²)

实现

算法描述(从小到大排序):

长度为n的数组,选取第一个数(第0位)为 i,i与i+1比较,如果i>i+1,那么交换位置

循环i++,直到n-1位,一趟下来,数组中最大的排到数组最后面。

冒泡排序流程图

4300416befff1936863f46206fab9a51.png

Java代码实现

@Test

public void bubbleSort(){

//创建一个乱序的数组

int [] arr = {0, 10, 5, 9, 17, 2, 13};

//双层for循环,控制循环次数

//外层是排序趟数,内层是比较次数

for (int i=0;i

for (int j=0;j

if (arr[j]>arr[j+1]){//如果j>j+1,置换位置

int temp = arr[j+1];//临时变量

arr[j+1] = arr[j];

arr[j] = temp;

}

}

}

//排序后结果

for (int i:arr) {

System.out.println(i);

}

}

f32a13e4dee68825d2c8728d1e8060d4.png

转载是一种动力 分享是一种美德 开源是一种信仰

6a37e860c98028487581e03b0f4d2187.png

—END—

rodert

更多文章后面会持续分享,有特别需要可以提前留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值