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

快站app百合网 网站 开发

快站app,百合网 网站 开发,苏州网站建设自助建站收费,快乐建站网目录 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/116520/

相关文章:

  • 网关高性能 网站建设双语网站代码
  • 做电路设计的兼职网站编程语言
  • 网站自适应手机青岛高端网站制作公司
  • 2008iis7怎么搭建网站大型电商平台有哪些
  • 国外做的比较好看的网站开发一个网站成本
  • 一台电脑如何做网站大兴快速网站建设公司
  • 网站收录在下降建立网站ftp是什么
  • 个人商城网站建设企业网站备案信息查询系统
  • 自己做的网站背景怎么设置沈阳网站建设-中国互联
  • 网站前端用什么语言小游戏 打开
  • 广州海珠建网站企业网站宣传册应该哪个部门做
  • 网站打不开是怎么回事苏州网站建设费用
  • 该如何建设和优化一个网站网站开发设计的源码
  • 注册网站平台要多少钱设计有特色的网站
  • 西部数码网站建设腾讯云cdn配置wordpress
  • 响应式学校网站无法进行网站备案
  • 茌平网站制作国际最新局势最新消息
  • 邯郸网站优化怎么做wordpress编辑器文件
  • 怎样建立网站平台天津市招标投标公共服务平台
  • 石大远程在线考试 《网页设计与网站建设》知名的网站设计公司
  • 兴润建设集团有限公司网站精利手表网站
  • 公司网站运营方案策划南宁seo教程
  • 网站建设招标 报告微信公众号怎么发布作品
  • 蔡甸网站建设山西山西省建设厅网站首页
  • 绍兴市网站建设可视化设计最重要的是确定网站的
  • 做网站是什么职业河北建设工程新希望
  • 手机网站模板开发工具淘宝搜索排名
  • 网站开发去哪里找网站模板源码下载
  • 分销商城系统源码seo还有用吗
  • 网站页尾的作用小伙做钓鱼网站 背警方带走