码迷,mamicode.com
首页 > 编程语言 > 详细

Java_冒泡排序_原理及优化

时间:2018-07-03 23:45:26      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:open   str   冒泡排序   sed   等于   sys   i++   判断   pre   

冒泡排序及其优化

一.原理及优化原理

  1.原理讲解

    冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较,以此类推,执行完为一个趟,趟数等于比较的个数减一.

  2.冒泡排序原理图示:(以98765序列为例,排序结果从小到大)

   技术分享图片

  3.冒泡排序优化

  优化版:每一次减少一次循环(即红色部分不需要在进行比较)

  技术分享图片

  4.冒泡排序最终版

  最终版:每一趟减少一次循环(删除线不需要再执行)

  技术分享图片

 

二.实现代码

  1.冒泡排序实现主要代码

  技术分享图片
public static void main(String[] args) {
        int []arr={9,8,7,6,5};
        
        int len=arr.length;
        
        for (int i=0;i<len-1;i++) {
            
            for (int j=0;j<len-1;j++) {
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));

    }
冒泡排序实现代码

 

 

  

  2.冒泡排序优化代码

  技术分享图片
public static void main(String[] args) {
        int []arr={9,8,7,6,5};
        
        int len=arr.length;
        
        for (int i=0;i<len-1-i;i++) {
            
            for (int j=0;j<len-1;j++) {
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));

    }
冒泡排序优化代码

 

  

  3.冒泡排序最终代码

  技术分享图片
public static void main(String[] args) {
        int []arr={9,8,7,6,5};
        
        int len=arr.length;
        
        for (int i=0;i<len-1;i++) {
            System.out.println("第"+(i+1)+"趟");
            //增加判断位
            boolean flag=true;
            for (int j=0;j<len-1-i;j++) {
                System.out.println("第"+(j+1)+"次");
                
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                    flag=false;
                }
                System.out.println(Arrays.toString(arr));
            }
            //如果上面没有执行直接退出
            if(flag){
                break;
            }
        }
        System.out.println(Arrays.toString(arr));

    }
冒泡排序最终版

 

三.注意事项

  1.多思考

Java_冒泡排序_原理及优化

标签:open   str   冒泡排序   sed   等于   sys   i++   判断   pre   

原文地址:https://www.cnblogs.com/aihuadung/p/9260831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!