当前位置: 首页 > news >正文

深圳网站设计建设公司百度云搜索引擎官网

深圳网站设计建设公司,百度云搜索引擎官网,河南建设厅证件查询平台,柳州网站虚拟主机公司算法介绍 希尔排序 等差数列 普通版插入排序 循环数组 第一次每n/2为间隔分为4组,然后组内排序。 第二次每n/4为间隔分为2组。然后组内排序 第三次n/8为间隔分为一组。然后组内排序。 组内排序用插入排序来排序。 注:也可以第一次为n/3为间隔&am…

算法介绍

希尔排序 = 等差数列 + 普通版插入排序

循环数组

第一次每n/2为间隔分为4组,然后组内排序。

第二次每n/4为间隔分为2组。然后组内排序

第三次n/8为间隔分为一组。然后组内排序。

组内排序用插入排序来排序。

注:也可以第一次为n/3为间隔,第二次为n/3^2,,第三次为n/3^3.这个随你定义。

 上面这个图片是讲采用3的分法的话最坏算法时间复杂度只有O(n*开平方n)。

c++中的sort = 快排 + 插排  

 算法题目

算法ac代码:

#include <iostream>using namespace std;const int N = 1000010;
int q[N];void shell_sort(int n){for(int d=n/2;d>=1;d = d/2)//算出每次的公差{for(int start=0;start<d;start++)//每次的开始下标{//插入排序for(int i=start+d;i<n;i=i+d){int x = q[i],j=i;while(j>start&&q[j-d]>x){q[j] = q[j-d];j = j-d;}q[j] = x;}}}return;
}
int main(){int n;cin>>n;for(int i=0;i<n;i++)scanf("%d",&q[i]);shell_sort(n);for(int i=0;i<n;i++)printf("%d ",q[i]);return 0;
}

算法复杂度

时间复杂度:

要看你是按照啥规矩分的组,不同分组的时间复杂度不一样,如果是按照“2”的话时间复杂度为O(N^2)

空间复杂度

O(1)

稳定性:

原先的元素的相对位置会不一样,所以不稳定。

快排和希尔排序时间复杂度最坏情况是不考虑的,其发生这样的情况的概率就如小型星球撞地球的概率一样,可以忽略不计。

http://www.ritt.cn/news/24774.html

相关文章:

  • 网站建设环境软件有哪些创意营销点子
  • 长沙网络推广外包费用seo应用领域有哪些
  • 做网站如何安全 博客seo网络优化推广
  • 公司网站搜索引擎排名分析html网页制作软件有哪些
  • 教人做素食的网站成都网站seo报价
  • 深圳网站建设信科公司便宜网络推广运营优化
  • 免费做网站bz3399百度推广账号登录入口
  • 获取网站缩略图免费b站在线观看人数在哪
  • 网站建设商家今日热点新闻事件
  • 做网站备案的问题广告资源发布平台
  • javascript期末作业百度搜索关键词排名优化技术
  • 建立网站第一步是建立什么优化网址
  • 记事本怎么做网站餐饮营销引流都有什么方法
  • 网站图片怎么做的高级当下最流行的营销方式
  • 人大网站建设请示磁力搜索神器
  • 做网站基本要求微信营销策略有哪些
  • 全国文明城市创建知识问答引擎优化
  • 网站如何做外链教程视频宁波受欢迎全网seo优化
  • 自动优化网站建设引流最好的推广方法
  • 网站建设落地页吸引人的软文
  • 沈阳有什么网站网站运营包括哪些内容
  • 企业网站php开发一个小程序一般需要多少钱呢
  • 有什么网站可以做宣传图片seo的优化策略有哪些
  • 玉溪市住房城乡建设局网站百度图片收录提交入口
  • 自己做卖东西的网站免费换友情链接
  • 做分色找工作网站网络营销的推广
  • 黑客怎么攻击网站搜索引擎营销原理
  • 宁波自己建网站美国疫情最新数据消息
  • wordpress后台修改代码网站推广优化排名
  • 深圳市公司网站建设服务机构百度人工智能开放平台