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

wordpress 后台风格主题网站优化网

wordpress 后台风格主题,网站优化网,网络运营管理是做什么的,h5开发网站目录 一、基本思想 二、动图演示 三、思路分析 四、代码实现 五、易错提醒 六、时间复杂度分析 一、基本思想 直接插入排序(Straight Insertion Sort)是一种简单直观的排序算法,其基本思想是: 把待排序的一个记录按其关键码…

目录

一、基本思想

二、动图演示

三、思路分析

四、代码实现

五、易错提醒

六、时间复杂度分析


一、基本思想

直接插入排序(Straight Insertion Sort)是一种简单直观的排序算法,其基本思想是:

把待排序的一个记录按其关键码值的大小,从后往前扫描,插入到一个已经排好的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。

生活中我们玩扑克牌以及整理书籍的时候都用到了直接插入排序算法的思想。

二、动图演示

三、思路分析

这里以升序为例:

  1. 首先要从无序表中取出第一个元素a,确定a的位置序号,跟有序表中最后一个元素进行比较
  2. 若发现a小于有序表的最后一个元素,则将有序表的最后一个元素放在元素a的位置(这里要先将a用临时变量tmp存放起来,防止被覆盖)
  3. 然后再让tmp与有序表倒数第二个元素进行比较,以此类推......
  4. 当a不小于有序表中的某个元素时,则将a放在该元素的下一个位置即可
  5. 这样就完成了单趟的排序,下一个无序表中的元素重复相同步骤

结合图分析,如下所示:

四、代码实现

下面是升序代码的实现

//n为数据元素个数
void InsertSort(int*a,int n)
{for (int i=0;i<n-1;i++)//这里i不能从1开始{//单趟排序//[0,end]的值有序,end+1处的值插入[0,end],仍保持有序int end = i;int tmp = a[end+1];while (end>=0){if (tmp < a[end]) //注意这里的tmp不能换成a[end+1],因为之前的a[end+1]会被覆盖{a[end + 1] = a[end];end--;}else{break;}}a[end + 1] = tmp;}
}

五、易错提醒

为什么要将a[end+1]=tmp写在while循环外面呢?而不是写在else语句里呢?

分析如下:

因为这里会出现两种情况

情况1:当待排的数字不比有序序列的第一个元素小的时候,那就可以将a[end+1]=tmp;写在else语句里

情况2:当待排的数字有序序列的第一个元素小的时候,也就是如下图情况:

经过上图分析可知,我们其实可以将代码写成如下形式:

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 (tmp < a[end]) {a[end + 1] = a[end];end--;}else{a[end + 1] = tmp;break;}}if (end == -1){a[end + 1] = tmp;}}
}

 该代码是把情况1和情况2分开来写,这种写法更易于理解

而将a[end+1]=tmp写在while循环外面是把两种情况写在了一起,使得代码更加简洁高效。

六、时间复杂度分析

最好情况下的时间复杂度是:O(N)

最坏情况下的时间复杂度是:O(N^2)

分析过程如下图所示:

http://www.hrbkazy.com/news/49085.html

相关文章:

  • 珠海做公司网站的淘宝搜索词排名查询
  • 网站的电子手册用什么做的北京seo网络优化师
  • 河南省建设委员会网站seo排名培训公司
  • 微信小程序怎么添加到桌面名风seo软件
  • 网站系统升级媒体资源
  • 用手机可以做网站百度账号管理
  • 网站建设挣钱潍坊seo排名
  • 网站制作产品优化seo点击软件排名优化
  • 电子商务网站建设方案范文ttkefu在线客服系统官网
  • 企业网站做优化排名象客谷歌浏览器网页版入口
  • 网站建设开发服务费怎么做分录seo英文怎么读
  • 精品网站要建设需要多少钱win7优化工具哪个好用
  • 网站后台建设计划书百度推广平台首页
  • 做淘宝电商比较厉害的网站bing搜索
  • 七牛云wordpress缓存配置整站优化推广
  • 用ps怎么做短视频网站百度一下 你知道首页
  • discuz和wordpress并发哪个合肥seo好
  • 秦皇岛房产信息网官网网站推广优化之八大方法
  • 2016年两学一做教育网站提高工作效率的方法不正确的是
  • 外贸优秀网站站长综合查询工具
  • 工伤做实的那个网站搜索引擎优化的内容包括
  • 福田做商城网站建设多少钱seo公司上海
  • 太原网站制作哪家不错抖音关键词搜索指数
  • 公司网站开发的核心技术如何优化搜索引擎的搜索功能
  • 全国有哪些做服装的网站广告策划案优秀案例
  • 做公司网站哪家 上海在线的crm系统软件
  • 个人网站建设需要备案吗营销和销售的区别
  • 网站建设微信运营公司搜索引擎下载
  • 百度网址怎么写seo关键词推广多少钱
  • 各种网站制作无锡百度快照优化排名