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

天津高端网站制作php商城网站开发

天津高端网站制作,php商城网站开发,seo优化推广公司,兰州装修公司哪家口碑最好前言#xff1a; 本文主要讲解插入排序中的直接插入排序和希尔排序。 1、直接插入排序#xff1a; 1.1基本思想 直接插入排序是一种简单的插入排序法#xff0c;其基本思想是把待排序的数值按照大小顺序逐个插入到一个已经排好序的有序序列中#xff0c;直到将所有记录…前言 本文主要讲解插入排序中的直接插入排序和希尔排序。 1、直接插入排序 1.1基本思想 直接插入排序是一种简单的插入排序法其基本思想是把待排序的数值按照大小顺序逐个插入到一个已经排好序的有序序列中直到将所有记录插入完为止得到一个新的有序序列。 实际中我们玩扑克牌时就用了插入排序的思想。 下面的图片就是插入排序的整体过程第一步认为5是一个有序区间然后2比5小就让5向后移前面填充2又形成一个有序的序列以此类推…… 原码 外层的循环相当于每次插入的扑克牌内层循环决定了这张扑克牌怎么插插在哪里 void StraightInsert(int arr[], int n) {//[0-end]有序插入end1位置的数使得[0-end1]序列仍然有序for (int i 0;in-1;i){int end i;int tmp arr[i 1];while (end 0){if (arr[end] tmp){arr[end 1] arr[end];end--;}elsebreak;}arr[end 1] tmp;} } 时间复杂度 时间复杂度计算的是完成程序的次数不能只看是双层循环就 武断 O(N^2) 前面讲过时间复杂度计算的是最差的情况最差的情况就是将逆序的排成升序的123……n-1这是一共累加的次数求和发现这是一个等差数列求和最高项就是N^2因此时间复杂度就是O(N^2)。 最好的情况下本来就是顺序end位置的值都需要跟前面一个比较所以就是O(N)。 2、希尔排序 2.1概念 希尔排序是一种特殊的直接插入排序也算是直接插入排序的优化版本。 2.2思想 我们发现在一些直接插入排序的例子时发现其实一些排序是很接近O(N)。 比如12536 因此我们想先进行预排序让原来的排序更接近有序接着再进行直接插入排序。 2.3预排序 何为预排序 预排序就是分组排间隔为gap的为一组注意 组数gap的值 预排序的规律重要 多组间隔为gap的预排序gap从大到小gap越大大的数可以越快的到后面小的数可以越快的到前面。gap越大预排序越不接近有序gap越小预排序越接近有序gap1时就是直接插入排序。 那gap到底是多少呢 这个问题较难回答这个问题没有官方的答案。 首先gap不可能是一个固定的数应该与数组的长度n相关我们一般采用gap   n/ 2的表达式来去定义gap的值因为要保证最后gap要被除到1为止 原码 void ShellSort(int arr[], int n) {int gap n;while (gap 1){gap gap / 31;for (int i 0; i n - gap; i)//这里的循环判断条件也很有讲究正好能将多组gap排完{int end i;int tmp arr[end gap];while (end 0){if (tmp arr[end]){arr[end gap] arr[end];//将数据往后移end - gap;}elsebreak;}arr[end gap] tmp;}} }通过代码我们不难发现预排序大部分的代码内容与直接插入排序是一样的只不过将1换成了gap而已。 预排序需要排很多次真的比直接插入排序快嘛 我们自己可以比较这两种排序方式上的时间差距经过比较我们发现直接插入排序的时间要比希尔排序的时间多上100倍左右随着N的增大时间差也会增大 时间复杂度 首先外层的while循环执行的次数是logN内层的循环当gap很大时执行次数是N当gap很小时执行次数也接近于N所以最终的时间复杂度O(logN*N)。 注意N^2与N*logN两者并不是一个量级的特别是当N的数非常大时。 一些书上直接给出了结论O(N^1.3)。
http://www.hkea.cn/news/14530659/

相关文章:

  • 做互联网小程序 和网站有没有前景阿里巴巴申请网站怎么做
  • 手机端网站建设备案昆明 网站建设
  • vi设计师主要是做什么的呢做一网站优化要多少钱
  • 网站 演示代码天津智能网站建设找哪家
  • 网站制作毕业设计论文wordpress博客有手机版
  • 特价网站建设公司wordpress自适应吸附菜单
  • 浏阳烟花网站建站定位及营销功能什么网站容易做百度权重
  • 免费网站从哪里申请中山网站建设文化报价
  • 网站技术有哪些网站建设与制作这个行业怎么样呢
  • 展示型为主的网站乐清做网站价格
  • 怎么自己做代刷网站深圳建站公司品牌网站建设
  • 网站 推送做网站建设公司赚钱吗
  • 微网站建设第一步是进行什么的设置济南做网站哪家便宜
  • 网站建设的前期开发成品网站源码在线看
  • iis6.0如何做网站301云盘搜索引擎入口
  • 网站开发人员要求小米应用商店下载安装
  • 微信网站开发模板wordpress水印插件
  • 亳州网站开发wordpress注册模板下载
  • 安阳做网站怎么给网站添加代码
  • 客户对网站建设公司的评价那里可以做app网站
  • gta5买房网站建设中建筑招聘平台
  • 能找本地人做导游的网站seo和sem的关系
  • 建设的访问网站需要密码wordpress免邮箱 注册
  • 用于网站建设的图片wordpress云主机名
  • 个人承接网站开发项目cloud域名注册网站
  • 石家庄网站建设策划方案做网站跳转
  • 什么网站建设比较好的南宁企业网站seo
  • 低面效果在哪个网站做seo关于网站搜索排名关键词的标准评定
  • 网站源码大全最新php网站开发招招聘
  • 可信赖的做网站一句话宣传自己的产品