排序算法—冒泡排序

冒泡排序原理

冒泡排序(Bubble Sort)是一种简单直观的排序算法。冒泡排序每次比较两个元素,如果元素顺序错误就把他们交换过来。一直重复该步骤,直到没有元素需要交换,也就是说该数组已经完成排序。冒泡排序的名字由来是因为越小的元素会经由交换慢慢"浮"到数组的最前面。

冒泡排序的步骤
  1. 从第一个元素开始,比较相邻的元素大小,如果前一个元素比后一个元素大,就交换二者的顺序,直到比较到数组的最后两个元素;
  2. 经过第一轮排序后,数组中最大的元素已经被排到数组的最后一位,因此之后再进行排序时,最后一个元素将不再参与排序过程;
  3. 第二轮排序开始,依然从第一个元素开始,按照步骤1进行排序,第二轮排序的次数要比第一轮排序的次数少1次;
  4. 以此类推,直到所有元素都完成排序。
排序过程演示

在这里插入图片描述

分析
  1. 由排序步骤可以看出,对于一个长度为 n 的数组,使用冒泡排序共需经过 n-1 轮排序,每轮排序次数为 n-轮次。
  2. 使用嵌套for循环实现,第一层for循环控制排序的轮数,第二层for循环控制每轮排序的次数。
  3. 循环体内使用 if 判断相邻元素大小,若前一个元素大于后一个元素,执行顺序交换。
算法实现
/**
 * 冒泡排序
 * @param array 传入的参数,排序前的数组
 * @return 排序后的数组
 */
public int[] bubbleSort(int[] array) {
   
    //用于交换数组元素顺序的变量
    int tmp;
    //共进行(数组长度 - 1)轮排序
    for 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

g-yli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值