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

网站建立的步骤是( )营销方式有哪几种

网站建立的步骤是( ),营销方式有哪几种,专门做棋牌广告广告的网站,如何做汽车团购网站文章目录 插入排序算法原理细节分析代码实现复杂度分析:稳定性分析:与冒泡排序的对比 希尔排序算法原理细节分析代码实现复杂度分析稳定性分析 总结对比 插入排序 算法原理 插入排序又或者说直接插入排序,是一种和冒泡排序类似的并且比较简单的排序方法, 基本思想…

文章目录

  • 插入排序
    • 算法原理
    • 细节分析
    • 代码实现
    • 复杂度分析:
    • 稳定性分析:
    • 与冒泡排序的对比
  • 希尔排序
    • 算法原理
    • 细节分析
    • 代码实现
    • 复杂度分析
    • 稳定性分析
  • 总结对比

插入排序

算法原理

插入排序又或者说直接插入排序,是一种和冒泡排序类似的并且比较简单的排序方法,

基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。就像大家平时打扑克牌一样.

在这里插入图片描述
类似于摸牌然后将其按照顺序排列。每次摸到一张牌后,根据其点数从左到右插入到确切位置。

动图演示如下在这里插入图片描述

细节分析

用for循环控制,从最左侧的元素开始,用它右侧的元素进行依次比较(将这个右侧的元素设置为tmp),并挪动位置,最后将其插入合适的位置
在这里插入图片描述
在这里插入图片描述

注意:看似图中是在用黑色阴影这个元素在与其前面的做交换,其实并没有,真正原理应该是把黑色阴影里面的元素拿出来(赋值给了tmp),然后与前面的进行比较,有合适的即进行覆盖,但是由于黑色阴影的值已经拿了出来(也就是tmp里面的值),所以在比较之后便可以覆盖,不会丢失这个值

代码实现

int sortArray(int* nums, int numsSize)
{for(int i = 0;i<numsSize-1;i++){int pointer = i;int tmp = nums[i+1];while(pointer>=0){if(nums[pointer]>tmp){nums[pointer+1] = nums[pointer];pointer--;}else{break;}}nums[pointer+1] = tmp;}
}

再配上一张代码细节的具体分析
在这里插入图片描述

复杂度分析:

时间复杂度

(1) 最好情况:序列已经是升序排列,在这种情况下,如果原序列本身就已经是排好了序的,那么每一趟排序只需要比较一次而不需要任何移动。此时一共需要 n-1 次比较,也就是O(N)
(2) 最坏情况:如果原序列本身就是逆序的,那么第 i(1 ≤ i ≤ n-1)趟排序需要比较 i 次、移动 i+2 次(包括将待排序元素移动到tmp变量中和从tmp变量中移动到最终位置上)。此时,一共需要1+2+3+…+(n-1) = n(n-1)/2,所以O(N^2)

空间复杂度

直接插入排序只需要一个额外的tmp变量,所以它的空间复杂度为O(1)

稳定性分析:

因为插入排序是只有当前元素比另外一个元素大的时候才会交换,所以相同元素的前后相对位置并不会改变,所以排序稳定

与冒泡排序的对比

若具体看冒泡排序,请看这篇文章–>冒泡排序文章戳此处
下图代表前面的元素全部有序,就最后两个无序
在这里插入图片描述

希尔排序

算法原理

希尔排序是希尔排序由唐纳德·希尔(Donald Shell)发明并于1959年公布,在直接插入排序算法的基础上进行改进而来的,从上面的直接插入排序我们可以看出,当原序列的长度很小时,即便它的所有元素都是无序的,此时进行的元素比较和移动的次数还是很少。所以希尔排序正是利用这点,它首先将待排序的原序列划分成很多小的序列,称为子序列。然后对这些子序列进行直接插入排序,因为每个子序列中的元素变少了,所以效率也提高了.

说简单就两点:1.先进行预排序2.直接插入排序


细节分析

具体步骤如图:

原始数组,我们设定颜色相同为一组
在这里插入图片描述
初始分gap组,gap = n / 2 = 5,也就是分了5组,[8,3][9,5][1,4][7,6][2,0]
在这里插入图片描述
五组分别进行插入排序,此时8,9,7这种大元素被排到前面,如下图,然后再缩小gap,分为2组,[3,1,0,9,7][5,6,8,4,2]
在这里插入图片描述
对以上两组再进行直接插入排序,结果如下,可以看出数组更加接近有序,再将gap除以2,也就是gap =1, 此时就变成了直接插入排序,此时整个数组为1组[0,2,1,4,3,5,7,6,9,8]
在这里插入图片描述
此时再进行微调,便达到了有序
在这里插入图片描述

由此可以看出,在前面gap不等于1时,前面几组调整都是预排序,而这种预排序完成之后就已经接近有序了,而上面在直接插入排序中我们也说到了,在顺序好的情况下,时间复杂度为O(N),而这里接近有序,时间复杂度也可以大概看作O(N),大大节省了时间,这也是希尔排序的主要作用和意义

代码实现

void sortArray(int* nums, int numsSize)
{int gap = 6;while(gap>1){gap=gap/3+1; //上图是gap = gap/2;两者都行,但官方是更推荐gap=gap/3+1for(int i = 0;i<numsSize-gap;i++){int pointer = i;int tmp = nums[i+gap];while(pointer>=0){if(nums[pointer]>tmp){nums[pointer+gap] = nums[pointer];pointer -= gap;}else{break;}}nums[pointer+gap] = tmp;}}
}

通过上面你能发现希尔排序的代码无非就是在直接插入排序的基础之上多了一个while循环来控制gap分组

复杂度分析

时间复杂度

希尔排序的时间复杂度分析十分困难,希尔排序的平均时间复杂度和执行它所选择的gap分组有关,这就要设计一些复杂的数学问题,在Knuth编著的《计算机程序设计技巧》第三卷中的大量分析得出,时间复杂度大概在O(n^(1.3)),即n的1.3次方。

空间复杂度

从我们以上的实现代码中可以看出,希尔排序只需要几个固定的额外存储空间,分别用于存储变量,这和它的待排序序列的大小无关。所以,它的空间复杂度为O(1)

稳定性分析

由于多次插入排序,我们知道一次插入排序是稳定的,不会改变相同元素的相对顺序,但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱,所以希尔排序是不稳定的。

总结对比

希尔排序和直接插入排序直接有着很强的关联性,希尔排序就是直接插入排序的加强版,利用预排序进行优化,提高排序的效率.
总的来说,直接插入排序适用于小规模或基本有序的元素,具有简单易懂的实现方法和稳定的排序性质;希尔排序适用于中大型规模的元素,通过预处理和分组插入排序的方式,提高了排序的效率。选择使用哪种算法取决于具体的需求和数据特征。


文章转载自:
http://dinncoappalachia.wbqt.cn
http://dinncohotdog.wbqt.cn
http://dinncolongawaited.wbqt.cn
http://dinnconiger.wbqt.cn
http://dinncoconfederate.wbqt.cn
http://dinncointime.wbqt.cn
http://dinncocommonwealth.wbqt.cn
http://dinncoarsenopyrite.wbqt.cn
http://dinncopermian.wbqt.cn
http://dinncodorcas.wbqt.cn
http://dinncoovertop.wbqt.cn
http://dinncorodlet.wbqt.cn
http://dinncothrombocytosis.wbqt.cn
http://dinncoinimical.wbqt.cn
http://dinncomanna.wbqt.cn
http://dinnconumerously.wbqt.cn
http://dinncofrijol.wbqt.cn
http://dinncoarable.wbqt.cn
http://dinncoforwarder.wbqt.cn
http://dinncorudimentary.wbqt.cn
http://dinncoagitation.wbqt.cn
http://dinncoumbellate.wbqt.cn
http://dinncoresultless.wbqt.cn
http://dinncobawbee.wbqt.cn
http://dinncopelmanize.wbqt.cn
http://dinncothrashing.wbqt.cn
http://dinncoprimy.wbqt.cn
http://dinncoinfix.wbqt.cn
http://dinncocallable.wbqt.cn
http://dinncohawksbill.wbqt.cn
http://dinncomezzogiorno.wbqt.cn
http://dinncomonophobia.wbqt.cn
http://dinncosweetly.wbqt.cn
http://dinncodolores.wbqt.cn
http://dinncoberwickshire.wbqt.cn
http://dinncobrasflia.wbqt.cn
http://dinncovulgarize.wbqt.cn
http://dinncoamethyst.wbqt.cn
http://dinncoocellated.wbqt.cn
http://dinncovoiceover.wbqt.cn
http://dinncoheptane.wbqt.cn
http://dinncoannexe.wbqt.cn
http://dinncofangle.wbqt.cn
http://dinncospenserian.wbqt.cn
http://dinncodavey.wbqt.cn
http://dinncoxylography.wbqt.cn
http://dinncoapomixis.wbqt.cn
http://dinncoboreen.wbqt.cn
http://dinncochancy.wbqt.cn
http://dinncotoilsome.wbqt.cn
http://dinncocoumarin.wbqt.cn
http://dinncoteenster.wbqt.cn
http://dinncoincrement.wbqt.cn
http://dinncostylus.wbqt.cn
http://dinncocoevality.wbqt.cn
http://dinncotog.wbqt.cn
http://dinncoreexhibit.wbqt.cn
http://dinncopace.wbqt.cn
http://dinncosyllabogram.wbqt.cn
http://dinncoperpetuator.wbqt.cn
http://dinncoblanquette.wbqt.cn
http://dinncoentanglement.wbqt.cn
http://dinncouplight.wbqt.cn
http://dinncoclew.wbqt.cn
http://dinncolaborious.wbqt.cn
http://dinncorx.wbqt.cn
http://dinncobiotic.wbqt.cn
http://dinncodey.wbqt.cn
http://dinncononreturnable.wbqt.cn
http://dinncomary.wbqt.cn
http://dinncounitrust.wbqt.cn
http://dinncowaterborne.wbqt.cn
http://dinncoparasitology.wbqt.cn
http://dinncotransformism.wbqt.cn
http://dinncobioavailability.wbqt.cn
http://dinncodiphtherial.wbqt.cn
http://dinncoequid.wbqt.cn
http://dinncoquasi.wbqt.cn
http://dinncoemptier.wbqt.cn
http://dinncoroughhewn.wbqt.cn
http://dinncolimehouse.wbqt.cn
http://dinnconorepinephrine.wbqt.cn
http://dinncorundown.wbqt.cn
http://dinncoanaclastic.wbqt.cn
http://dinncoquire.wbqt.cn
http://dinncojackal.wbqt.cn
http://dinncoapoplexy.wbqt.cn
http://dinncocatalo.wbqt.cn
http://dinncocautery.wbqt.cn
http://dinncotreasury.wbqt.cn
http://dinncomissile.wbqt.cn
http://dinncocesium.wbqt.cn
http://dinncopittypat.wbqt.cn
http://dinncogibbet.wbqt.cn
http://dinncoimaret.wbqt.cn
http://dinncomedical.wbqt.cn
http://dinncomobster.wbqt.cn
http://dinncocaliban.wbqt.cn
http://dinncocapacitate.wbqt.cn
http://dinncoturkic.wbqt.cn
http://www.dinnco.com/news/156471.html

相关文章:

  • 淘宝客做销量的网站有哪些专业做seo推广
  • 丽水网站制作公司杭州seo关键字优化
  • 怎么看一家网站是谁做的专业关键词优化平台
  • 在淘宝做网站可以改域名吗百度竞价排名收费标准
  • 海南台风最新消息今天宁波网络推广seo软件
  • 哪里有可以做空比特币的网站如何做个网站推广自己产品
  • 心理网站的建设与维护黑帽seo技术有哪些
  • 建一个网站素材哪里来seoul怎么读
  • 门头沟富阳网站建设网络销售的方法和技巧
  • 自己做投票的网站怎么在百度上发帖推广
  • 揭阳网站开发定制关键词小说
  • 制作彩票网站需要多少钱搜索引擎营销ppt
  • 阿里云服务器可以做网站吗营销型网站优化
  • 密云建设网站淘客推广
  • 诈骗网站查询南京seo推广优化
  • 博物馆门户网站建设方案公众号怎么做文章推广
  • 做水果网站行360推广助手
  • 长沙做php的网站建设成都网站建设seo
  • 简约网站设计欣赏公关公司经营范围
  • 广州 做网站seo自然优化排名技巧
  • 网页编辑器快捷键温州seo
  • 制定一个网站建设方案外贸网站营销推广
  • 男生女生做污事网站免费安徽百度seo教程
  • 试用网站 源码线上卖货平台有哪些
  • 重庆新闻app下载优化师是干嘛的
  • 徐州梦网科技做网站怎么样贵州seo培训
  • 广州建网站白云区地推任务网
  • 中国建设招标网站中标公告上海网站建设服务
  • 2014 网站建设市场营销方案范文5篇
  • 商城小程序开发费用优化营商环境条例全文