zoukankan      html  css  js  c++  java
  • 数据结构之希尔排序

    • 基本原理

           希尔排序也被称为“缩小增量排序”。先将待排序的数组元素分为多个子序列,使得每个子序列的元素个数相对较小,然后对每个子序列分别进行直接插入排序,待整个待排序序列“基本有序后”,最后再对所有元素进行一次直接插入排序。

    • 程序如下
    public class Test{
        public static void sort(int[] a){
            int i, j, h;
            for(h=a.length/2;h>0;h/=2){
                for(i=h;i<a.length;i++){
                    int temp = a[i];
                    for(j=i-h;j>=0;j-=h){
                        if(temp<a[j]){
                            a[j+h] = a[j];
                        }
                        else
                            break;
                    }
                    a[j+h] = temp;
                }
            }
        }
        public static void main(String[] args) {
            int[] a = {7,6,4,8,9,3,2};
            sort(a);
            for(int i=0;i<a.length;i++){
                System.out.print(a[i]+" ");
            }
        }
    }

          程序结果

    • 算法分析
    1. 最好时间:O(n)
    2. 平均时间:O(nlogn)
    3. 最坏时间:O(ns) 1<=s<=2
    4. 辅助存储:O(1)
    5. 稳定性:不稳定
  • 相关阅读:
    记录一次电话面试
    记录一次git合并
    HTML通用属性与常见标签
    位运算的应用
    HTML总结
    前端MVC
    常用软件
    docker常用命令
    composer install(update)时出现killed
    优化小技巧:该怎么识别百度蜘蛛呢
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/6632919.html
Copyright © 2011-2022 走看看