博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法之排序--希尔排序
阅读量:4026 次
发布时间:2019-05-24

本文共 463 字,大约阅读时间需要 1 分钟。

目录

 


一、概述

希尔排序是在插入排序基础上,优化而来,时间复杂度为O(n **3/2),空间复杂度O(1), 稳定排序

 

二、重点

实际的时间复杂度,与对应的序列算法有很大的关系,常见的序列有:

1.简单序列

使用step=size/2, 每次再step = step/2,直到为0截止

2.hibbard序列,最坏O(n **3/2), 平均O(n **5/4)

先求step:

step=1;

while(step < size/2) step = step*2+1;

3.sedgewick序列:

一种算法是

9*(4**i) - 9*(2**i) +1 or (4**i) - 3* (2**i) + 1

在网上(见参考【2】有看到直接使用以下用法,测试效果也还可以:

step=1; while(step < size/3) step = step*3+1;

三、场景:

数据量不是很大,又没有外部依赖,不想写复杂的代码,可使用较好序列的希尔排序。

四、参考文档:

【1】希尔排序增量序列简介 

【2】算法-7-希尔排序

转载地址:http://vopbi.baihongyu.com/

你可能感兴趣的文章
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
Maven跳过单元测试的两种方式
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
[leetcode BY python]1两数之和
查看>>
微信小程序开发全线记录
查看>>
Centos import torchvision 出现 No module named ‘_lzma‘
查看>>
网页设计里的浮动 属性
查看>>
Maximum Subsequence Sum
查看>>
PTA:一元多项式的加乘运算
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>