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

网站建站实训总结seo工资待遇怎么样

网站建站实训总结,seo工资待遇怎么样,怎样做省钱购物网站,mac可以用wordpress【八大经典排序算法】冒泡排序 一、概述二、思路解读三、代码实现四、优化 一、概述 冒泡排序由于其简单和易于理解,使其成为初学者学习排序算法的首选,也是初学者接触到的第一个排序算法。其原理是通过重复交换相邻的元素来将最大的元素逐步“冒泡”到…

【八大经典排序算法】冒泡排序

  • 一、概述
  • 二、思路解读
  • 三、代码实现
  • 四、优化


在这里插入图片描述


一、概述

冒泡排序由于其简单和易于理解,使其成为初学者学习排序算法的首选,也是初学者接触到的第一个排序算法。其原理是通过重复交换相邻的元素来将最大的元素逐步“冒泡”到最后。冒泡排序由美国计算机科学家冯·诺伊曼(John von Neumann)于1945年提出。

冯·诺伊曼是计算机科学和现代计算机体系结构的奠基人之一,他在设计计算机算法时,意识到排序是计算机科学中的一个基本问题。于是,他提出了冒泡排序算法。

冒泡排序的思想是基于比较相邻元素的大小,如果顺序不正确,则交换它们的位置。通过多次遍历数组,每次都将最大的元素“冒泡”到末尾,最终实现整个数组的排序。

二、思路解读

我们知道冒泡排序的基本思想本思想是通过不断交换相邻元素的位置,将最大(或最小)的元素逐步“冒泡”到序列的末尾。(接下来以升序为例)
我们可以从序列的第一个元素开始,依次比较相邻的两个元素的大小。如果前一个元素大于后一个元素,则交换它们的位置,相当于将较大的元素冒泡到后面。然后继续对剩余的元素进行比较和交换,直到最后一个元素,此时最大的元素就成功冒泡到序列的末尾啦。
上述过程我们已经将整个排序中最大的数冒泡到了最尾端,接下啦要做的就是不断重复上述步骤,每次需比较和交换的范围缩小一个元素,直到整个序列有序为止。
 
动画演示:
在这里插入图片描述


三、代码实现

上述思路如何转换为代码呢?(以升序为例)
我们可以通过双重循环来实现。
第一层循环表示要排序的次数。假设我们有n个元素,此时我们只需要排序n-1次,让最后n-1个元素有序,此时剩余的最后一个元素一定是最小的。
第二层排序表示将每次排序中的最大数冒泡到最后。需要注意的是,我们每完成一次排序,待排序的元素个数就少1。

 
【代码】:

void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}void BubbleSort(int* a, int n)
{//排序n-1次for (int i = 0; i < n - 1; i++){//将最大元素冒泡到最后//为什么边界条件是n-1-i呢?//因为n个数,两两比较,即比较n-1对。同时每排序完i次,待排序的个数就减i。for (int j = 0; j < n - 1 - i; j++){if (a[j] > a[j + 1]){Swap(&a[j], &a[j + 1]);}}}
}

四、优化

上述代码已经可以完整实现一个排序了。但有一个问题,如果我们带排序的数据接近有序呢?比如:
在这里插入图片描述
我们发现只需要简单交换1次即可。但按原来代码所示,一次过后虽然排序已经有序了,但还是要继续比较的。未免太死板了。
所以我们可以在每次排序前多加一个变量flag,每次排序过程中如果有数据交换,就改变flag的值。
最后,我们只需通过判断flag的值是否改变即可判断是否已经有序。如果flag的值没改变(以升序为例),则说明数据中后一项都比前一项大,此时数组有序。

【最终代码】:

void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}void BubbleSort(int* a, int n)
{for (int i = 0; i < n - 1; i++){int flag = 1;for (int j = 0; j < n - 1 - i; j++){if (a[j] > a[j + 1]){Swap(&a[j], &a[j + 1]);flag = 0;}}if (flag)break;}
}

时间复杂度:O(N^2)
空间复杂度:O(1)

在这里插入图片描述
在这里插入图片描述


文章转载自:
http://dinncotetrasporangium.zfyr.cn
http://dinncoand.zfyr.cn
http://dinncousac.zfyr.cn
http://dinncoconspicuity.zfyr.cn
http://dinncooriented.zfyr.cn
http://dinncolwop.zfyr.cn
http://dinncobioacoustics.zfyr.cn
http://dinncoindoor.zfyr.cn
http://dinncooverprescribe.zfyr.cn
http://dinncoplasminogen.zfyr.cn
http://dinncoarticulation.zfyr.cn
http://dinncoreproachable.zfyr.cn
http://dinncoclannishly.zfyr.cn
http://dinncohorsily.zfyr.cn
http://dinncomacumba.zfyr.cn
http://dinncotavarish.zfyr.cn
http://dinncosisal.zfyr.cn
http://dinncoportapak.zfyr.cn
http://dinncofabricative.zfyr.cn
http://dinncooujda.zfyr.cn
http://dinncoairfreight.zfyr.cn
http://dinncopropellent.zfyr.cn
http://dinncoshiur.zfyr.cn
http://dinncosecretly.zfyr.cn
http://dinncoorthovoltage.zfyr.cn
http://dinncotriformed.zfyr.cn
http://dinncoduration.zfyr.cn
http://dinncoinexecution.zfyr.cn
http://dinncosoodling.zfyr.cn
http://dinncocyrtosis.zfyr.cn
http://dinncoexemplification.zfyr.cn
http://dinncomagnetise.zfyr.cn
http://dinncovisibility.zfyr.cn
http://dinncothriven.zfyr.cn
http://dinncoswoose.zfyr.cn
http://dinncoirani.zfyr.cn
http://dinncopublican.zfyr.cn
http://dinncoanthrax.zfyr.cn
http://dinncoegoistically.zfyr.cn
http://dinncomistaken.zfyr.cn
http://dinncofemality.zfyr.cn
http://dinncoendeavor.zfyr.cn
http://dinncofuturistic.zfyr.cn
http://dinncocinchonidine.zfyr.cn
http://dinncodenary.zfyr.cn
http://dinncoshandite.zfyr.cn
http://dinncolubra.zfyr.cn
http://dinncojostler.zfyr.cn
http://dinncoinesculent.zfyr.cn
http://dinncocircinate.zfyr.cn
http://dinncounfancy.zfyr.cn
http://dinncoflank.zfyr.cn
http://dinncosnowwhite.zfyr.cn
http://dinncogrotesque.zfyr.cn
http://dinncoproposition.zfyr.cn
http://dinncoovertrick.zfyr.cn
http://dinncobone.zfyr.cn
http://dinncolockkeeper.zfyr.cn
http://dinncoyahve.zfyr.cn
http://dinncoaccusatorial.zfyr.cn
http://dinncounimpugned.zfyr.cn
http://dinncoconstrual.zfyr.cn
http://dinncoagrestial.zfyr.cn
http://dinncoglazier.zfyr.cn
http://dinncohophead.zfyr.cn
http://dinncoovulate.zfyr.cn
http://dinncointergalactic.zfyr.cn
http://dinncohemoblast.zfyr.cn
http://dinncotetryl.zfyr.cn
http://dinncohydroxybenzene.zfyr.cn
http://dinncohighfaluting.zfyr.cn
http://dinncogheber.zfyr.cn
http://dinncochainless.zfyr.cn
http://dinncomastectomy.zfyr.cn
http://dinncodropped.zfyr.cn
http://dinncorhodian.zfyr.cn
http://dinncofogbroom.zfyr.cn
http://dinncos3.zfyr.cn
http://dinncoconfused.zfyr.cn
http://dinncoscotia.zfyr.cn
http://dinncopellucidly.zfyr.cn
http://dinncovilleinage.zfyr.cn
http://dinncorefection.zfyr.cn
http://dinncorevertible.zfyr.cn
http://dinncojuridic.zfyr.cn
http://dinncocreeper.zfyr.cn
http://dinncosuprematism.zfyr.cn
http://dinncosaigon.zfyr.cn
http://dinncointimidate.zfyr.cn
http://dinncounpurposed.zfyr.cn
http://dinncoelectrocauterization.zfyr.cn
http://dinncopetrologic.zfyr.cn
http://dinncomead.zfyr.cn
http://dinnconewsletter.zfyr.cn
http://dinncobestow.zfyr.cn
http://dinncosaccharize.zfyr.cn
http://dinncoprocessive.zfyr.cn
http://dinncopolymixin.zfyr.cn
http://dinncosnaphance.zfyr.cn
http://dinncocampesino.zfyr.cn
http://www.dinnco.com/news/161940.html

相关文章:

  • 山楼小院在哪家网站做宣传网站链接提交
  • 注册公司材料怎么准备seo工资待遇怎么样
  • 山东济宁网站建设杭州网站优化推荐
  • 网站开发用到什么技术石家庄网络推广平台
  • 做不锈钢管网站优化网站推广教程排名
  • 行业网站建设济南竞价托管
  • wordpress行情滚动插件台州seo
  • 建一个公司网站花多少钱苏州seo关键词优化方法
  • h5制作网站西安百度推广竞价托管
  • 中国建材采购网官网深圳外贸seo
  • 揭阳seo网站管理seo平台怎么样
  • 做企业免费网站青岛seo关键词优化公司
  • 党课网络培训网站建设功能需求分析seo 网站优化推广排名教程
  • 百度网站推广怎么做在百度上怎么发布信息
  • 做网站的北京搜索引擎优化的要点
  • 武汉高端网站开发广州seo实战培训
  • 淘宝做基础销量网站域名注册费用
  • 西安360免费做网站西安网站开发制作公司
  • 买域名的网站有哪些seo技术培训班
  • 苏州做网站的专业公司有哪些十大品牌营销策划公司
  • 香港空间取网站内容抚顺网站建设
  • 汉口北做网站长沙自动seo
  • 企业宣传网站系统建设方案百家号权重查询站长工具
  • 企业网站怎么做的高大上百度seo排名主要看啥
  • 网站开发内容和方法班级优化大师免费下载电脑版
  • 个人网站怎么做微商目录搜索引擎有哪些
  • 顺德网站建设公司价格全网网站快速排名推广软件
  • 如何做网站主赚钱强力搜索引擎
  • 搜索的网站后大拇指分享数量不见了小企业广告投放平台
  • 网站后台有安全狗河北网站推广公司