• 插入排序


    插入排序
    i元素插入到下标为0~i-1的位置上,逐个比较,如果发现前面的元素比arr[i]
    则将该元素后移 否则将i元素放入到空位置上

    package whale.simpleAlgorithm;
    
    
    /**
     * @Author: WhaleFall541
     * @Date: 2021/4/4 16:08
     */
    public class SimpleSort {
    
        public static void main(String[] args) throws InterruptedException {
    
            int[] arr = {-1111, 20, -3, -10, 100, -255};
    
            insertSort(arr);
            StringBuilder sb = new StringBuilder();
            for (int i : arr)
                sb.append(i).append(" ");
            System.out.println("sb = " + sb);
    
        }
    
        // 插入排序
        private static void insertSort(int[] arr) {
            for (int i = 1; i < arr.length; i++) {
                // 需要将i插入到前面子序列
                if (arr[i] < arr[i - 1]) {
                    int k = arr[i], j;
                    // i为要插入的元素,j为i往前的元素
                    // 如果arr[j]比k大 则把arr[j]元素往后挪
                    // 如果arr[j]比k小则直接插入元素在空位上
                    for (j = i - 1; j >= 0 && arr[j] > k; j--)
                        arr[j + 1] = arr[j];
                    // 将元素放到比k小的后面
                    arr[j + 1] = k;
                }
            }
        }
    }
    
    

    转载请注明 原文地址

  • 相关阅读:
    ssh代理转发
    了解ssh代理:ssh-agent
    ssh使用密钥进行认证
    拾遗之”三元运算”与”打印奇偶行”
    MySQL 8.0二进制包安装
    awk内置函数
    awk数组详解
    awk动作总结之二
    awk动作总结之一
    [shell]批量抽取文件并重命名
  • 原文地址:https://www.cnblogs.com/whalefall541/p/14873149.html
Copyright © 2020-2023  润新知