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

用wordpress 帮客户建站seo关键词优化推广哪家好

用wordpress 帮客户建站,seo关键词优化推广哪家好,官网网站模板,做新零售这些注册网站和找货源6希尔排序(直接插入排序的优化) 1.分组思想 上图中gap为5,说明要分成5组。 这5组分别用了五种颜色的线条连接起来了。 第1组:9、4 第2组:1、8 第3组:2、6 第4组:5、3 第5组:7、5 2.缩…

在这里插入图片描述


pic_ea1faa34.png

希尔排序(直接插入排序的优化)

在这里插入图片描述

1.分组思想

pic_0dfb86e6.png
上图中gap为5,说明要分成5组。
这5组分别用了五种颜色的线条连接起来了。

第1组:9、4
第2组:1、8
第3组:2、6
第4组:5、3
第5组:7、5

2.缩小增量的过程

前面gap为5的情况排序后会变成下面情况

pic_f23d22c9.png
按照gap把数据分成了两组。

当数据很大的时候,数据的间隔很大。
小的数据会往前方,大的数据会往后放。

gap会逐渐缩小,间隔也会逐渐缩小。

整体的数据会更加趋于有序,这个时候使用直接插入排序效率会更高。

gap为2的时候会排序成下面情况
pic_0447dcb5.png
此时分为了1组,再排序一次后变成下面情况
pic_b3e009ae.png
此时的数据即为有序的。

3.排序情况分析

3.1 排序五组数据的情况
  1. gap为5,将数据分为5组,图中红色线画中的为第一组。定义一个 i 变量指向这一组的第二个数据,定义一个 j 变量指向 i - gap 的位置。pic_8bc0604f.png

  2. i 下标的值放到定义的 tmp 中,然后与 j下标 的值比较。
    j 下标的值较大,将 j 下标的值放到 j + gap 的位置。
    pic_a2d5c2ab.png
    执行后
    pic_c8c66b53.png

  3. j 变量向 j - gap 位置走,若这个位置的下标为负数。
    则要将 tmp 的值放到 j + gap的位置

    pic_309fd82e.png
    j 变量此时在-5下标处,要将 tmp 的值放到 j + 5的位置。
    pic_6efd9088.png
    这一组数据此时为有序了。
    排序下一组数据,i++即可,j 变量依然是在 i - gap 的位置。
    后面4组数据类似,不在演示

    最终排序结果是:
    pic_39f25156.png

3.2 排序两组数据的情况
  1. 此时 gap 为2,数据此时分为了两组。第一组由红色线画出(4、2、5、8、5),第二组由蓝色线画出(1、3、9、6、7)。
    i 变量指向这一组的第二个数据, j 变量指向 i - gap 的位置。
    pic_79aba18f.png
  2. 将 i 下标的值放到定义的 tmp 中,然后与 j下标 的值比较。
    若 j 下标的值较大,将 j 下标的值放到 j + gap 的位置。
    pic_a1827bdf.png
    执行后:
    pic_c7dc2b21.png
  3. j 变量向 j - gap 位置走,若这个位置的下标为负数。
    则要将 tmp 的值放到 j + gap的位置。
    pic_77e9e055.png
    j 变量此时在-2下标处,要将 tmp 的值放到 j + 2的位置。
    pic_24b5d29e.png
    这一组数据中的 2 和 4 此时为有序了。
    排序下一组数据,i++ 即可,j 变量依然是在 i - gap 的位置。
    后面剩下的数据类似,不在演示。
    最终排序结果是:
    pic_e322a32c.png
3.3 排序一组数据的情况
  1. i 变量指向第二个数据, j 变量指向 i - gap 的位置。
    pic_5d8552c1.png
  2. 将 i 下标的值放到定义的 tmp 中,然后与 j下标 的值比较。
    若 j 下标的值较大,将 j 下标的值放到 j + gap 的位置。
    pic_b717516f.png
    执行后:
    pic_d4882821.png
  3. j 变量向 j - gap 位置走,若这个位置的下标为负数。
    则要将 tmp 的值放到 j + gap的位置。
    pic_86700dd5.png
    j 变量此时在-1下标处,要将 tmp 的值放到 j + 1的位置。
    pic_15bdda6e.png
    此时 前两个数据有序了,后面的数据排序过程类似。
    排序下一组数据,i++ 即可,j 变量依然是在 i - gap 的位置。
    最终结果是:
    pic_846996a2.png

4.代码分析以及实现

在这里插入图片描述

1.间隔分组,通常为总长度的一半
2.组内排序
3.重新设置间隔分组,为前一组的一半
4.当gap= 1时,为直接插入排序。

void ShellSort(int *arr, int n)
{// 初始化间隔为数组的长度int gap = n;      while (gap > 1){// 逐渐减小间隔,每次将间隔除以2gap /= 2;// 也可以使用这种方式来减小间隔,这是一种不同的策略// gap = gap / 3 + 1;// 遍历数组,每次跳过gap个元素,对每个子序列进行插入排序for (int i = 0; i < n - gap; i++){// 初始化j为当前元素的索引int j = i;// 保存当前子序列的元素,以便在排序过程中移动int tmp = arr[i + gap];// 将tmp插入到已排序的子序列中的正确位置while (j >= 0){// 如果tmp小于子序列中的元素,则将该元素向后移动一个间隔if (tmp < arr[j]){arr[j + gap] = arr[j];// 继续向前比较j -= gap;}else{// 如果tmp不小于子序列中的元素,则跳出循环break;        }}// 当j为负数时,表示tmp已经找到了正确的位置,将其插入到子序列中arr[j + gap] = tmp;}}
}

执行结果:
在这里插入图片描述

5.性能分析

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

pic_90b88cc9.png

http://www.wangmingla.cn/news/5567.html

相关文章:

  • 动态网站开发实训报告1百度seo流量
  • 局域网内做网站温州网站建设开发
  • 做视频网站如何赚钱seo顾问张智伟
  • 手机做公司网站站长平台
  • 邯郸去哪做网站改版杭州搜索引擎排名
  • 中企动力网站开发汕头seo建站
  • 做网站什么是解析什么是跳转游戏代理免费加盟
  • 目前主流的网站开发语言百度客服转人工
  • wordpress英文企业主题爱站网seo培训
  • 公司网站定位建议高端营销型网站建设
  • 呼和浩特做网站电商运营工资一般多少钱一个月
  • 崇州企业网站建设app搜索优化
  • 网上建立网站百度信息流广告位置
  • 专做韩国代购的网站seo网站排名的软件
  • wordpress 变成垃圾邮件seo超级外链工具
  • 2003建立虚拟网站南京今日新闻头条
  • 个人网站建设软件宁德市
  • 中国广告设计网seo收录查询
  • 南宁网站建设设计制作永久免费制作网页
  • 网站制作软件都是什么网站运营及推广方案
  • 公司网站建设的方案市场推广方案怎么做
  • 如何电话推销客户做网站江门网站优化公司
  • 莫邻在线客服系统网店seo排名优化
  • DW做网站下拉列表怎么做网站策划方案书
  • 北京做网站的公司排行郑州网络seo
  • 做网站设计怎么进企业济南网站制作
  • 没有有知道钓鱼网站在哪儿做网站网页的优化方法
  • 网站推广网络推广金华网站推广
  • 表述网站建设流程正规赚佣金的平台
  • 免费自动建站nba最新排行