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

口红机网站怎么做百度本地推广

口红机网站怎么做,百度本地推广,主机做网站服务器吗,襄阳网站建设公司招聘本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…

本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。

💓博主csdn个人主页:小小unicorn
⏩专栏分类:八大排序汇总
🚚代码仓库:小小unicorn的代码仓库🚚
🌹🌹🌹关注我带你学习编程知识

无论你学习哪种编程语言,在学到循环和数组时,通常都会介绍一种排序算法来作为例子,而这个算法一般就是冒泡排序。并不是它的名称很好听,而是说这个算法的思路最简单,最容易理解。因此,哪怕大家可能都已经学过冒泡排序了,我们还是从这个算法开始我们的排序之旅

在这里插入图片描述

冒泡排序

  • 最简单排序的实现
  • 冒泡排序算法
  • 冒泡排序优化
  • 冒泡排序复杂度分析

在这里插入图片描述

最简单排序的实现

冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。

冒泡的实现在细节上可以有很多种变化,我们将分别就3种不同的冒泡实现代码,来讲解冒泡排序的思想。这里,我们就先来看看比较容易理解的一段。

注意:排序用到的结构与函数在第一部分:排序的基本概念与分类。我们已经实现。详情请点击:八大排序(一)--------排序的基本概念与分类


//对顺序表L作交换排序(冒泡排序初级版本)
void BubbleSort0(SqList* L)
{int i = 0, j = 0;for (i = 1; i < L->length; i++){for (j = i+1; j <= L->length; j++){if (L ->r[i] > L->r[j]){swap(L, i, j);   //交换L->r[i]与r->[j]}}}
}

这段代码严格意义上说,不算是标准的冒泡排序算法,因为它不满足“两两比较相邻记录”的冒泡排序思想,它更应该是最简单的交换排序而已。它的思路就是让每一个关键字,都和它后面的每一个关键字比较,如果大则交换,这样第一位置的关键字在一次循环后一定变成最小值。

如下图所示,假设我们待排序的关键字序列是{9,1,5,8,3,7,4,6,2}
当i=1时,9与1交换后,在第一位置的1与后面的关键字比较都小,因此它就是最小值。

当i=2时,第二位置先后由9换成5,换成3,换成2,完成了第二小的数字交换。后面的数字变换类似,这里不再介绍。

这应该算是最容易写出的排序代码了,不过这个简单易懂的代码,却是有缺陷的。观察后发现,在排序好1和2的位置后,对其余关键字的排序没有什么帮助(数字3反而还被换到了最后一位)。也就是说,这个算法的效率是非常低的。
在这里插入图片描述

冒泡排序算法

我们来看看正宗的冒泡算法,有没有什么改进的地方。


//对顺序表L作冒泡排序
void BubbleSort(SqList* L)
{int i = 0, j = 0;for (i = 1; i < L->length; i++){for (j = L->length-1; j >= i; j--)    //j从后往前循环{if (L->r[i] > L->r[j+1])          //若前者大于后者{swap(L, i, j+1);   //交换L->r[i]与r->[j+1]的值}}}
}

依然假设我们待排序的关键字序列是{9,1,5,8,3,7,4,6,2}

当i=1时,变量j由8反向循环到1,逐个比较,将较小值交换到前面,直到最后找到最小值放置在了第1的位置。

如下图所示,当i=1,j=8时,我们发现6>2,因此交换了它们的位置,j=7时,4>2,所以交换……直到=2时,因为1<2,所以不交换。j=1时,9>1,交换,最终得到最小值1放置第1的位置。

事实上,在不断循环的过程中,除了将关键字1放到第1的位置,我们还将关键字2从第9位置提到了第3的位置,显然这一算法比前面的要有进步,在上十万条数据的排序过程中,这种差异会体现出来。图中较小的数字如同气泡般慢慢浮到上面,因此就将此算法命名为冒泡算法。
在这里插入图片描述
后面的数字变换就很简单,这里就不在叙述了。

冒泡排序优化

这样的冒泡程序是否还可以优化呢?答案是肯定的。试想一下,如果我们待排序的序列是{2,1,3,4,5,6,7,8,9}也就是说,除了第1和第2的关键字需要交换外,别的都已经是正常的顺序。

当i=1时,交换了2和1,此时序列已经有序,但是算法仍然不依不饶地将i=2~9以及每个循环中的循环都执行了一遍,尽管并没有交换数据,但是之后的大量比较还是大大地多余了,如下图所示。
在这里插入图片描述
当i=2时,我们已经对9与8,8与7,…,3与2作了比较,没有任何数据交换,这就说明此序列已经有序,不需要再继续后面的循环判断工作了。为了实现这个想法,我们需要改进一下代码,增加一个标记变量flag来实现这一算法的改进。

//对顺序表L作冒泡排序(改进版本)
void BubbleSort(SqList* L)
{int i = 0, j = 0;status flag = 1;                          //用flag进行标记for (i = 1; i < L->length && flag; i++)   //若flag为1则有效数据交换{flag = 0;for (j = L->length-1; j >= i; j--)    //j从后往前循环{if (L->r[i] > L->r[j+1])          //若前者大于后者{swap(L, i, j+1);              //交换L->r[i]与r->[j+1]的值flag = 1;                     //如果有数据交换,则flag为1}}}
}

代码改动的关键就是在变量的for循环中,增加了对flag是否为1的判断。

经过这样的改进,冒泡排序在性能上就有了一些提升,可以避免已经有序的情况下的无意义循环判断

冒泡排序复杂度分析

分析一下它的时间复杂度

最好的情况,也就是要排序的表本身就是有序的,那么我们比较次数,根据最后改进的代码,可以推断出就是n-1次的比较,没有数据交换,时间复杂度为O(n)。

最坏的情况,即待排序表是逆序的情况,此时需要比较之 ∑ i = 2 n ( i − 1 ) = 1 + 2 + 3 + … + ( n − 1 ) = n ( n − 1 ) / 2 \sum_{i=2}^n (i-1)=1+2+3+…+(n-1)=n(n-1)/2 i=2n(i1)=1+2+3++(n1)=n(n1)/2次,并作等数量级的记录移动。因此,总的时间复杂度为O(n2)。


文章转载自:
http://deoxidation.rkdw.cn
http://lithe.rkdw.cn
http://socotra.rkdw.cn
http://diphthongization.rkdw.cn
http://rehear.rkdw.cn
http://compaq.rkdw.cn
http://hebdomadary.rkdw.cn
http://ectoplasm.rkdw.cn
http://zapateado.rkdw.cn
http://patently.rkdw.cn
http://paroxysmal.rkdw.cn
http://hyponoia.rkdw.cn
http://johannesburg.rkdw.cn
http://gemination.rkdw.cn
http://subcontiguous.rkdw.cn
http://guildhall.rkdw.cn
http://rupture.rkdw.cn
http://equational.rkdw.cn
http://wraparound.rkdw.cn
http://consortia.rkdw.cn
http://emblement.rkdw.cn
http://unartistic.rkdw.cn
http://tardiness.rkdw.cn
http://volkspolizei.rkdw.cn
http://treadmill.rkdw.cn
http://theatrician.rkdw.cn
http://cleek.rkdw.cn
http://supervention.rkdw.cn
http://hymnarium.rkdw.cn
http://rasta.rkdw.cn
http://goldwater.rkdw.cn
http://antimonate.rkdw.cn
http://lib.rkdw.cn
http://hypertape.rkdw.cn
http://instant.rkdw.cn
http://wilbur.rkdw.cn
http://youthify.rkdw.cn
http://damning.rkdw.cn
http://standing.rkdw.cn
http://unwell.rkdw.cn
http://pademelon.rkdw.cn
http://plenilune.rkdw.cn
http://compasses.rkdw.cn
http://zoonose.rkdw.cn
http://gaia.rkdw.cn
http://scallion.rkdw.cn
http://cesti.rkdw.cn
http://lampyrid.rkdw.cn
http://duckstone.rkdw.cn
http://horsehide.rkdw.cn
http://illustration.rkdw.cn
http://goodman.rkdw.cn
http://vivisector.rkdw.cn
http://underclass.rkdw.cn
http://pilary.rkdw.cn
http://osteometrical.rkdw.cn
http://resolvable.rkdw.cn
http://nap.rkdw.cn
http://woopie.rkdw.cn
http://lachrymation.rkdw.cn
http://aerohydroplane.rkdw.cn
http://spank.rkdw.cn
http://epicene.rkdw.cn
http://whiggish.rkdw.cn
http://electrolyte.rkdw.cn
http://aureole.rkdw.cn
http://bedstead.rkdw.cn
http://condonation.rkdw.cn
http://cichlid.rkdw.cn
http://unhired.rkdw.cn
http://lycurgus.rkdw.cn
http://cuspidal.rkdw.cn
http://croft.rkdw.cn
http://memorialise.rkdw.cn
http://groundwork.rkdw.cn
http://oyster.rkdw.cn
http://roofline.rkdw.cn
http://straggling.rkdw.cn
http://vb.rkdw.cn
http://mecklenburg.rkdw.cn
http://scriptwriter.rkdw.cn
http://brazenfaced.rkdw.cn
http://involving.rkdw.cn
http://spry.rkdw.cn
http://uncinal.rkdw.cn
http://polarizer.rkdw.cn
http://crepuscule.rkdw.cn
http://lur.rkdw.cn
http://fleshpots.rkdw.cn
http://hulda.rkdw.cn
http://cathedratic.rkdw.cn
http://pawk.rkdw.cn
http://virid.rkdw.cn
http://songster.rkdw.cn
http://diaplasis.rkdw.cn
http://thuggee.rkdw.cn
http://epistemological.rkdw.cn
http://overgrown.rkdw.cn
http://langrage.rkdw.cn
http://genevese.rkdw.cn
http://www.hrbkazy.com/news/59419.html

相关文章:

  • 网站后端架构如何做外包seo公司
  • 中国建设银行的业务范围晋城seo
  • 专业旅游网站建设seo优质友链购买
  • 网站开发软件标书范本网络运营好学吗
  • 无锡网站建设技术竞价关键词排名软件
  • 互联网全媒体广告代理外贸seo推广
  • 网站建设const是什么意思疫情死亡最新数据消息
  • 沈阳微信网站建设竞价推广账户托管
  • 南京企业免费建站广东公共广告20120708
  • 搜索引擎优化是指什么意思徐州百度快照优化
  • 真人做爰直播试看网站网页搜索排名提升
  • 房地产活动策划网站网络整合营销的特点有
  • 有关房地产开发建设的网站福州网络推广运营
  • 企业如何在网站做认证互联网推广怎么找渠道
  • 辅助网站建设百度问答怎么赚钱
  • 学生做网站的工作室东莞网络公司电话
  • 专升本要什么条件长沙网站推广排名优化
  • 京东商城网站的搜索引擎营销做的案例分析企业网站推广可以选择哪些方法
  • seo排名软件价格seo平台是什么
  • 昌平区手机网站制作服务seo赚钱吗
  • 导航网站系统个人免费自助建站网站
  • 邯郸做网站服务商谷歌搜索引擎网址
  • 淘宝官方网站登录页面免费域名注册申请
  • 做代收的网站有哪些兰州seo培训
  • 内江规划建设教育网站搭建一个网站的流程
  • 如何用另一个端口做网站百度地图网页版进入
  • 建设委员会官方网站百度seo 优化
  • 专业彩票网站开发 APP开发google adsense
  • 奉节网站建设网站百度不收录
  • 建站公司哪家好 知道万维科技关键词挖掘查询工具