zoukankan      html  css  js  c++  java
  • 排序——希尔排序

    找一个gap,在arrays中,以gap为间隔,分小组,对每一组数据其进行插入排序

    然后,减小gap,再依次进行插入排序

    注意:其中控制大循环的增量i++,不是i += gap,因为如果是i+=gap的话,就是按照以gap为间隔只排0, gap, 2gap......,其他的1,1+gap,1+2gap......不会排序

    public class ShellSort {
        public void shellSort(Integer[] arrays){
            if(arrays.length == 0) return;
            int len = arrays.length, j;
            for(int gap = len / 2; gap > 0; gap /= 2){
                for(int i = gap; i < len; i++){
                    int temp = arrays[i];
                    for(j = i - gap; j >= 0; j = j - gap){
                        if(arrays[j] < temp) break;
                        arrays[j + gap] = arrays[j];
                    }
                    arrays[j + gap] = temp;
                }
            }
        }
    }
    

      

  • 相关阅读:
    Web应用网络模型
    Http协议
    Array数组标准库
    Array数组基础
    javascript--Object
    javascript--Function
    letCode-3
    面试前的准备
    面试常见问题
    面试经验总结
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/8660460.html
Copyright © 2011-2022 走看看