java 冒泡排序

冒泡排序


       彪哥的性格就是先看代码,代码如下:


public class BubbleSort {

    public static void main(String[] args) {
    int [] arr = {5,2,9,7,3,1,4,6,8,0};
    //排序前
    for(int i:arr){
    System.out.print(i+" ");
   
    System.out.println();
   
    for(int out=(arr.length-1);out>0;out--){
   
    for(int in=0;in<out;in++){
   
    if(arr[in] > arr[in+1]){
    int tmp = arr[in];
    arr[in] = arr[in+1];
    arr[in+1] = tmp;
    }
   
    }
    }

   
    //排序后
    for(int i:arr){
    System.out.print(i+" ");
    }
   
   
   
    }
    
    
   
}


5 2 9 7 3 1 4 6 8 0 
0 1 2 3 4 5 6 7 8 9 




        这个算法的思路是要将最小的数据项放在数组的最开始(数组下标为0),并将最大的数据项放在数组的最后(数组下标为length-1)。

        外层 for循环的计数器 out 从数组的最后开始,即 out 等于length-1,每经过一次循环 out 减1。下标大于 out的数据项都已经是排好序的了 。变量 out在每完成一次内部循环 (计数器为 in)后就左移一位, 因此算法就不再处理那些已经排好序的数据了 。

       内层 for循环计数器 in从数组的最开始算起,即 in=0,每完成一次内部循环体加一,当它等于out时结束一次循环。在内层 for循环体中,数组下标为 in和 in+1的两个数据项进行比较,如果下标为 in的数据项大于下标为 in+1的数据项,则交换两个数据项。


 冒泡排序的效率

      无论何时, 只要看到一个循环嵌套在另一个循环里,就可以怀疑这个算法的运行时间为  O(N2) 级。外层循环执行 N次,内部循环对于每一次外层循环都执行 N次(或者几分之 N次)。这就意味着将大约需要执行 N*N或者 N2次某个基本操作。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值