zoukankan      html  css  js  c++  java
  • java基础算法

    冒泡排序

    图解

    编码实现

    public class Sort {
        public static void main(String[] args) {
            //通过冒泡排序给当前的数字进行排序(升序)
            int arr1[] = {30,20,15,12,18,100};
            //进行多少次冒泡过程
            for (int i = 0; i < arr1.length-1; i++) {//将数组中的所有元素都通过遍历拿出来(进行多少次冒泡过程)
                boolean sorted = true;//每次冒泡之前,都假设本次无需区间有序了
                //遍历无序区间,做一次冒泡过程
                for (int j = 0; j < arr1.length-i-1; j++) {//开始进行数组中所有元素比较的循环操作
                    /**
                     * 将相邻两个元素进行比较,如果当前的元素比后面元素大的情况下,
                     * 这两个元素进行位置交换
                     */
                    if (arr1[j] > arr1[j+1]){//当前元素大于后面元素
                        //1.将小的元素(和当前元素相邻的元素)放到tmp这个空的容器中
                        int tmp = arr1[j+1];
                        //2.将原来大的元素(当前的元素)放入原来放小元素的位置
                        arr1[j+1] = arr1[j];
                        //3.将小的元素放入到原来大的元素的位置,至此完成位置的交换
                        arr1[j] = tmp;
                        sorted =false;//只要有过交换,无序区间有序的假设就不成立
    
                    }
                }
                if (sorted){//每次冒泡之后,假设成立,整个数组有序
                    break;
                }
            }
            for (int i:arr1) {
                System.out.print(i+ " ");
            }
        }
    }
    
      重构
    
    public static void bubbleSort(int[] array){
                boolean sorted = true;
                for (int i = 0; i < array.length-1; i++) {
                    for (int j = 0; j < array.length-1-i; j++) {
                        if (array[j] > array[j+1]){
                            int tmp = array[j];
                            array[j] = array[j+1];
                            array[j+1] = tmp;
                            sorted = false;
                        }
                    }
                    if (sorted){
                        break;
                    }
                }
            }
    
     public static void main(String[] args) {
                int[] array = {1,2,3,10,5,6};
                bubbleSort(array);
                System.out.println(Arrays.toString(array));
            }
        }
  • 相关阅读:
    Mahout机器学习平台之聚类算法具体剖析(含实例分析)
    算法导论 动态规划 钢条分割问题的自底向上解法
    玩转Linux网络namespace-单机自环測试与策略路由
    Unity KillCount
    android 项目中使用到的网络请求框架以及怎样配置好接口URL
    Gradle 1.12 翻译——第十四章. 教程
    MySQL 性能优化
    Git教程
    Eclipse常用小知识汇总
    自定义全局异常捕获
  • 原文地址:https://www.cnblogs.com/lvshuizhicheng/p/14396843.html
Copyright © 2011-2022 走看看