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

深圳网站设计建设公司优化流程

深圳网站设计建设公司,优化流程,线上如何做推广,wordpress分类自定义title算法介绍 希尔排序 等差数列 普通版插入排序 循环数组 第一次每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.ds6.com.cn/news/60022.html

相关文章:

  • 建筑公司网站需求百度关键词优化多久上首页
  • 做物流网站的多少钱计算机培训机构哪个最好
  • 河源网站建设 科技做百度推广一个月多少钱
  • wordpress用户注册添加密码网站如何优化一个关键词
  • 上海注册公司注册资本长春网络优化最好的公司
  • 杭州 网站建设网站360网站安全检测
  • 做网站可以使用rem单位吗竞价托管代运营多少钱
  • 做网站怎么赚钱 知乎武汉网站建设
  • 做视频网站需要多少带宽全国十大教育机构
  • wordpress原创保护seo应用领域有哪些
  • 网站开发工程师 招聘怎么建立网站?
  • 工商局网站开发费用软文写作什么意思
  • 九江做网站哪家公司好中国网站排名网
  • 网站改版意义济南seo小黑seo
  • b2b网站建设方案长沙怎么才能让百度收录网站
  • 中国建设银行官网登录首页seo优化方法有哪些
  • 卡易售网站建设网络营销渠道建设方案
  • icp网站建设手机seo关键词优化
  • 电商需要了解的知识好看的seo网站
  • 做php网站的话要学什么语言上海百度seo牛巨微
  • 海洋高端的专业做网站公司网站建设推广
  • 长沙品质网站建设优点无锡营销型网站建设
  • 商城类网站建设河北网站推广公司
  • 企业做网站有哪些好处商丘网站seo
  • 有没有免费注册域名的网站关键词seo排名怎么做的
  • html网站地图生成工具百度打广告多少钱一个月
  • 网络建设的网站推广工具
  • wordpress标签生成图片全国分站seo
  • 上海做网站的公司名称网页设计网站
  • 做网站按钮搜索引擎优化排名技巧