zoukankan      html  css  js  c++  java
  • shell排序的java实现

    package com.edu.hpu.sort.insert.shell;
    
    import java.util.Arrays;
    
    import com.edu.hpu.sort.Sort;
    
    public class ShellSort extends Sort {
    
        @Override
        public int[] doSort(int[] arr) {
            int len = arr.length;
            // 所有的步长可能性(首次为数组长的一半,接下来每次为上一次的一半)
            for (int gap = len / 2; gap > 0; gap /= 2) {
                // 将步长中的所有元素进行插入排序
                for(int w = 0; w < gap; w++){
                    // 步长为gap的插入排序
                    // 对照插入排序
                    /*
                     * for(int i = p + 1; i < r; i++){
                     *        int key = arr[i];
                     *        int j = i - 1;
                     *        while(j >= 0 && arr[j] > key) {
                     *            arr[j + 1] = arr[j];
                     *            j--;
                     *        }
                     *        arr[j + 1] = key;
                     *    }
                     */
                    for (int i = gap + w; i < len; i += gap) {
                        // 插入排序
                        int key = arr[i];
                        int j = i - gap;
                        while (j >= 0 && arr[j] > key) {
                            arr[j + gap] = arr[j];
                            j -= gap;
                        }
                        arr[j + gap] = key;
                    }
                }
                System.out.println(Arrays.toString(arr));
            }
            return arr;
        }
    
        public static void main(String[] args) {
            Sort sort = new ShellSort();
            sort.printOrder(new int[] {100, 201, 999, 4, 1, 3, 2, 16, 9, 100, 194, 8, 7, 0, 90 });
        }
    }
  • 相关阅读:
    tomcat 乱码问题
    mongo获取lbs数据
    sping mvc+uploadify 上传文件大小控制3部曲
    jstack 查看线程状态
    nginx 限流配置
    查找占用CPU高线程
    redis sentinel无法启动问题
    GC垃圾回收机制
    ASP.NET 生命周期
    Javascript验证手机号码正则表达式
  • 原文地址:https://www.cnblogs.com/xinyuyu/p/4788019.html
Copyright © 2011-2022 走看看