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

兰州网站推广建设公司seo关键词工具

兰州网站推广建设公司,seo关键词工具,网站背景视频,网站建设项目1.希尔排序思路 希尔排序是一种基于插入排序的算法,通过将原始数据分成若干个子序列,然后对子序列进行插入排序,逐渐减小子序列的间隔,最后对整个序列进行一次插入排序。 1.分组直接插入排序,目标接近有序--------…

1.希尔排序思路

希尔排序是一种基于插入排序的算法,通过将原始数据分成若干个子序列,然后对子序列进行插入排序,逐渐减小子序列的间隔,最后对整个序列进行一次插入排序。
 

1.分组直接插入排序,目标接近有序-----------gap>1

2.直接插入排序,目标有序-----------------------gap=1

2.分组排序思路分析

假设固定gap=3,那么以下数组可以分为三组

每一组都使用用直接插入排序,使数据有序

最后三组都排完后数组变成了:0,2,1,4,3,6,5,7,8,此时的结果接近有序

此时只需要再调用一次插入排序,即可让整个数组变得有序。

下面我们来实现一下这个

2.1思路代码

void ShellSort(int* a, int n)
{int gap = 3;for (int j = 0; j < gap; j++){for (int i = j; i < n - gap; i += gap){int end = i;int tmp = a[end + gap];while (end >= 0){if (a[end] > tmp){a[end + gap] = a[end];end -= gap;}else{break;}}a[end + gap] = tmp;}for (int i = 0; i < n; i++){printf("%d ", a[i]);}printf("\n");}
}

在每一组排序后都打印一下来观察

2.2结果显示

3.gap的设定

当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。
 

当我们不再固定gap而是让他变化时,如下图gap=gap/2;

3.1动图演示

一般现在认为gap=gap/3+1较为合适,我们以此来实现一下代码

3.2最终代码实现

这里省去了一层for循环,把原本一组一组交换变为了组之间交替交换,时间复杂度没有改变。

//升序
void ShellSort(int* a, int n)
{int gap = n;while (gap > 1){gap = gap / 3 + 1;for (int i = 0; i < n - gap; i++){int end = i;int tmp = a[end + gap];while (end >= 0){if (a[end] > a[end + gap]){a[end + gap] = a[end];end -= gap;}else{break;}}a[end + gap] = tmp;}}
}

4.时间复杂度

记忆:O(N^1.3)

比O(N*logN)大,比O(N^2)小

希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,因此在好些树中给出的希尔排序的时间复杂度都不固定

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

相关文章:

  • 永久免费建网站外贸网站推广的方法
  • 高碑店网站建设搜索引擎营销的典型案例
  • 春哥 响应式网站建设厦门百度seo
  • 免费下载应用市场谷歌seo博客
  • 一般给公司做网站用什么软件seo公司网站推广
  • 饮料招商网站大全河南网站关键词优化
  • 福州做网站fjfzwl新冠病毒最新消息
  • 什么网站比谷歌还好中国站长之家网站
  • 网站微信建设运维经验分享图友链交换不限内容
  • 济南网站制作公司报价郑州百度网站快速优化
  • 网站域名能改吗个人代运营一般怎么收费
  • 所有复刻手表网站手机优化软件排名
  • 最简单的网站开发软件有哪些深圳网络营销
  • 大庆网站建设军事新闻头条最新消息
  • 建行官网官网网站吗厦门seo测试
  • 宁波网页设计快速seo整站优化排行
  • wordpress+代码行号seo搜索引擎优化介绍
  • 北京做网站的公司排名淘宝seo软件
  • 个人网页的设计与制作价值seo免费推广软件
  • 网站建设的目的只是开展网络营销互联网推广方式有哪些
  • 网站开发小公司推荐营销型网站外包
  • 石狮制作网站友情链接的英文
  • 正式做网站站点怎么新建北京网站优化页面
  • 企业网站源码gitseo怎么发文章 seo发布工具
  • 个人简历电子版在线制作手机优化软件下载
  • 分类信息网站建设方案app拉新推广代理
  • 微信营销的策略有哪些代哥seo
  • 宁波网站推广找哪家公司今日头条十大新闻最新
  • 网站开发 浏览器线上营销渠道
  • 高校机关党委网站建设社群营销的方法和技巧