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

深圳网站设计吧seo专业培训课程

深圳网站设计吧,seo专业培训课程,网站开发的项目实战,德州建设小学网站算法介绍 希尔排序 等差数列 普通版插入排序 循环数组 第一次每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.dinnco.com/news/51116.html

相关文章:

  • 四川建设门户网站建网站的详细步骤
  • 贵阳专业做网站的公司武汉seo工厂
  • 凡科建站代理登录入口互联网营销师培训机构
  • 网站新媒体建设百度统计app下载
  • 中台网站开发新东方烹饪学校学费价目表
  • 网站建设用哪个软件外包公司有前途吗
  • 三亚网站建设公司石家庄网络推广
  • 做淘宝头像的网站如何快速推广网站
  • 免费网站后台管理系统模板搜索引擎优化的方法与技巧
  • 海南网站建设介绍googleplay安卓版下载
  • 上传网站 php 服务器百度怎么推广产品
  • 我的网站dede成人厨师短期培训班
  • 免费咨询海报武汉搜索引擎排名优化
  • 做网站简单需要什么软件国内最好的危机公关公司
  • 网站的静态资源服务器怎么做it培训
  • 摇一摇抽签用什么网站做网站客服系统
  • 知名的软件开发公司深圳优化公司找高粱seo服务
  • 厦门在线制作网站百度免费推广平台
  • 网站直播怎么做的手机网站自助建站系统
  • 淄博哪家网络公司做网站好百度网页版入口链接
  • 建筑工程网站定制网络营销可以做什么工作
  • 智慧旅游网站建设方案培训计划方案
  • 湖北做网站系统哪家好百度精准引流推广
  • 有女人和马做网站吗企业推广宣传方式
  • 北京网站设计制作网站网站关键词怎么设置
  • 男女性做那个微视频网站广告联盟赚钱app
  • web和网站的区别今天的新闻主要内容
  • wordpress php解密算法信息流优化师面试常见问题
  • 网站建设平台郑州热门网络推广免费咨询
  • 建筑装饰和网站建设哪个好网站怎样优化关键词好