zoukankan      html  css  js  c++  java
  • 排序算法之希尔排序

    基本思想:
    在要排序的一组数中,根据某一增量分为若干子序列,并对子序列分别进行插入排序。
    然后逐渐将增量减小,并重复上述过程。直至增量为1,此时数据序列基本有序,最后进行插入排序。

    过程:

    java代码:

        public int[] shellSort(int[] array) {
            int incre = array.length;
            while (true) {
                incre = incre / 2;
                for (int k = 0; k < incre; k++) {    //根据增量分为若干子序列
    
                    for (int i = k + incre; i < array.length; i += incre) {
    
                        for (int j = i; j > k; j -= incre) {
                            
                            if (array[j] < array[j - incre]) {
                                array[j - incre] = array[j] ^ array[j - incre];
                                array[j] = array[j] ^ array[j - incre];
                                array[j - incre] = array[j] ^ array[j - incre];
                            } else {
                                break;
                            }
                        }
                    }
                }
    
                if (incre == 1) {
                    return array;
                }
            }
        }
    

      

  • 相关阅读:
    一些前台技巧
    javascript中的面向对象
    vs.net 常用快捷键
    js和C#中的进制转换方法
    MFC中CDC相关图形,文本的一些使用方法(转)
    poj1505
    poj1401
    poj2533
    poj1504
    poj1384
  • 原文地址:https://www.cnblogs.com/maohaitao/p/11379200.html
Copyright © 2011-2022 走看看