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

中邦建设工程有限公司官方网站湖南建设监理工程网站

中邦建设工程有限公司官方网站,湖南建设监理工程网站,深圳办公室装饰,wordpress+图片库目录 1.直接插入排序2.希尔排序 1.直接插入排序 基本思想: 把待排序的数据按其大小逐个插入到一个已经排好序的有序序列中,直到所有的数据插入完成为止。 当插入第i个元素时,前面的a[0],a[1],...,a[i-1]个数据已经排好序了,此时用…

目录

  • 1.直接插入排序
  • 2.希尔排序

1.直接插入排序

基本思想:
把待排序的数据按其大小逐个插入到一个已经排好序的有序序列中,直到所有的数据插入完成为止。

当插入第i个元素时,前面的a[0],a[1],...,a[i-1]个数据已经排好序了,此时用a[i]a[i-1],a[i-2],...进行比较,找到插入位置就将a[i]插入,原来位置上的元素顺序后移

在这里插入图片描述

void InsertSort(int* a, int n)
{for (int i = 0; i < n-1; i++){int end = i;//记录已经有序的数据的最后一个数据的下标int tmp = a[end + 1];while (end >= 0){if (a[end] > tmp){a[end + 1] = a[end];end--;}else//a[end]<tmp,说明前(i+1)个数已经有序了{break;}}a[end + 1] = tmp;}
}

在这里插入图片描述

元素集合月接近有序,直接插入排序算法的时间效率更高
时间复杂度:O(N^2)
稳定性:稳定

2.希尔排序

希尔排序是直接插入排序的优化

1.预排序
2.直接插入排序
基本思想:
先选定一个整数,把待排序文件中所有数据分成gap个组,所有距离为gap的数据分在同一个组里,并对每一组的数据进行排序。然后,取gap=gap/3+1,重复上述分组的操作。当gap=1时,所有数据在同一组的已经排好序了

void ShellSort(int* a, int n)
{int gap = n;while(gap > 1){//+1保证最后一个gap一定是1//gap》1是预排序//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] > tmp){a[end + gap] = a[end];end -= gap;}else{break;}}a[end + gap] = tmp;}}
}

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

当gap>1时都是预排序,目的是让数组更接近有序。当gap==1时,数组已经接近有序了,这样就会很快
时间复杂度:O(N^1.3)(ps:时间复杂度是不固定的)
稳定性:不稳定

http://www.yayakq.cn/news/871435/

相关文章:

  • 北京网站建设可选兴田德润合肥的网站建设州
  • 做seo网站公司wordpress建站购买
  • 电子商务企业网站的基本功能创可贴设计网站官网
  • 电商网站多少钱友情链接查询友情链接检测
  • 浙江网站建设推广网站建设中效果
  • 阜城网站建设嘉兴网站建设的前景
  • 电商网站业务流程网站授权书
  • 网站建设需求分析调研百度pc版网页
  • 济南网站建设山东聚搜网力推广东网站设计公司价格
  • 网站开发容易吗个人主页源码网页模板
  • 免费建站平台0云南网站建设定做
  • 做网站的费用会计分录交换友情链接的条件
  • 专做宝宝辅食的网站图片设计网站有哪些
  • 招远网站设计百度热搜seo
  • 个人网站栏目网站开发 兼职
  • 做eso哪家网站好电商网站建设的内容
  • 麻城网站建设建网站 服务器
  • 北京注册公司要多少钱才能注册灰色行业关键词优化
  • 怎么建设一个网站网络营销是什么学科门类
  • 宁波公司网站开发招聘企业管理系统哪家好
  • 网站设计的一般流程免费ppt模板制作软件
  • 高端的电影网站一个新手怎么去运营淘宝店铺
  • 优惠券领取网站开发开发app需要多久
  • 利用博客做网站域名怎么拿来做网站
  • 福州网站建设招聘信息网站建设 项目要求
  • 建设部国家标准网站thinkphp 做门户网站
  • 浙江省住建和城乡建设厅官方网站闲鱼怎么做钓鱼网站
  • 长沙公司建设网站展陈公司排名
  • 石化建设分会网站禁用wordpress自动保存插件
  • 如何用自己电脑做网站服务器wordpress 小说多站