zoukankan      html  css  js  c++  java
  • 冒泡排序和插入排序

      根据ideal的debug 显示,第一次进入for 循环的时候,没有进行 i++ 操作。 第二次进入循环的时候,就算不满足 i < 100 的条件,也会进行i++ 操作。

     /**
         * 冒泡排序
         * @param a 数组
         * @param n 数组长度
         */
        public static void bubbleSort(int[] a, int n){
            if (n <= 1){
                return;
            }
            for (int i = 0; i < n; i++){
                // 提前退出冒泡循环的标志位
                boolean flag = false;
                for (int j = 0; j < n - i -1; j++){
                    if (a[j] > a[j + 1]){
                        // 交换
                        int temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                        // 表示有数据交换
                        flag = true;
                    }
                }
                // 没有数据交换,提前退出
                if (!flag){
                    break;
                }
            }
        }
    
        /**
         * 插入排序
         * @param a 数组
         * @param n 数组的长度
         */
        public static void insertionSort(int[] a, int n){
            if (n <= 1){
                return;
            }
            for (int i = 1; i < n; ++i){
                int value = a[i];
                int j = i - 1;
                // 寻找插入的位置
                for (; j >= 0; --j){
                    if (a[j] > value){
                        // 数据移动
                        a[j + 1] = a[j];
                    }else {
                        break;
                    }
                }
                // 插入数据
                a[j + 1] = value;
            }
        }
  • 相关阅读:
    ideaj项目切换不同版本的jdk
    物理机(window)安装linux系统
    linux jar自启动
    swap扩容
    tomcat加载外部项目
    springboot2.3.2控制台输出@RequestMapping路径
    linux磁盘扩容
    springboot-easycode配置文件修改
    List
    Map HashMap跟HashTable
  • 原文地址:https://www.cnblogs.com/prader6/p/12378382.html
Copyright © 2011-2022 走看看