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

二手服务器做网站站长工具忘忧草社区

二手服务器做网站,站长工具忘忧草社区,湖南企业网站建设,做网站开发要具备哪些素质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.wooajung.com/news/27264.html

相关文章:

  • 网站外链怎么购买网站推广平台排行
  • 加强党委网站建设广告策划
  • 有什么网站是做平面设计的今日国际新闻摘抄
  • 丽水企业网站建设公司怎么免费注册域名
  • 安卓手机搭建wordpress东莞网站关键词优化公司
  • 邢台百姓网免费发布信息查询seo页面排名优化
  • 网站如何做网站解析百度搜索风云榜小说
  • 网站做好是需要续费的吗seo外链代发
  • 现在海外做的比较好一点的网站青岛网站建设方案
  • 网站服务器地址查询方法南宁seo推广公司
  • 百度官网认证 网站排名百度seo
  • 专业做家具的网站谷歌外贸平台叫什么
  • wordpress文章页隐藏侧边栏seo外包多少钱
  • 网站建设 十佳制作短视频seo厂家
  • 网站备案花钱吗seo必备工具
  • 住房和城乡建设厅网站衡水网站seo
  • 网站制作旅行社关键词有哪些?
  • 政府网站建设管理情况总结市场推广策略
  • 彩票网站什么做app网络推广公司
  • 什么网站做ppt好关键词优化的方法有哪些
  • 广州企业网站排名百搜科技
  • 做网站的服务器哪个系统好阿里指数在哪里看
  • SEO与网站建设创意泰安做百度推广的公司
  • 跨境电商网站开发公司数据统计网站
  • 二级域名网站权重网站如何推广运营
  • 商城网站建设服务器海南百度推广开户
  • 网站的做用重庆企业免费建站
  • b站推广网站nba智库seo是什么意思seo是什么职位
  • 我的三次做网站的经历近期国际新闻20条
  • 随州网站建设优化推广渠道百度推广服务费一年多少钱