排序算法之冒泡排序

本文介绍了冒泡排序算法的基本原理及其实现方式。该算法通过反复遍历待排序数组,比较相邻元素并交换位置来实现排序。文章详细展示了如何使用嵌套循环完成排序过程,并提供了具体的Java实现代码。

冒泡排序:这个排序算法是我上大学以来是第一个学的算法,现在想想时间真的很快,感触蛮多。

算法思想:就是每经过一次大循环,找出当前未进行排序的最大或最小点放在第一位,然后依次循环。

主体是一个嵌套循环,第一个大循环来确定数组第i个位置放哪个数字。里面嵌套的小循环是进行判断和其他点的大小,不符合顺序交换,这个小循环一直要从未排序的头部分走到尾部分,这样一直交换就把最大或者最小的交换到了最后或者第一个位置

注意:如果是按从小到大需要从队尾开始,如果按照从大到小需要从队头开始。

package bubbling;
//时间复杂度为O[n的平方]
public class Bubbling {
   public static void main(String[] args) {
       int[] bub = new int[]{4,2,3,2,52,2,1,6,42,54};//先定义一个数组,用来操作用
       int i,j,k;//循环用变量
       Boolean flag=true;//用flag做标记,如果最后一次循环前就排序好了,那么第一个大循环就不会进入if语句,
       for(i=0;i<9&&flag==true;i++){
            flag=false;
           for(j=bub.length-2;j>=i;j--){//-2是因为有两个-1,第一个减1是因为下标是0开始的,第二个减1是因为从都数第二个开始和倒是一个交换
               if (bub[j]>bub[j+1]){
                   k=bub[j];
                   bub[j]=bub[j+1];
                   bub[j+1]=k;
                   flag=true;
               }
           }
       }
       for(int f:bub){
           System.out.println(f);
       }
   }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值