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

无锡网站设计开发百度地图官网2022最新版下载

无锡网站设计开发,百度地图官网2022最新版下载,大宗商品现货交易平台排名,企业做淘宝客网站今天重温一下算法,其实刚开始我觉得冒泡排序和选择排序是一样的,因为他们排序过程中都是通过相邻的数据比较找到最小/最大的数据,通过不断思考和学习才明白,两者还是有区别的。 冒泡排序 概念 冒泡排序(Bubble Sort)&#xff0…

今天重温一下算法,其实刚开始我觉得冒泡排序和选择排序是一样的,因为他们排序过程中都是通过相邻的数据比较找到最小/最大的数据,通过不断思考和学习才明白,两者还是有区别的。

冒泡排序

概念

冒泡排序(Bubble Sort),可以说是知名度最高也是特别特别重要的经典排序算法。

冒泡排序和选择排序都属于交换排序算法的一种。所谓交换排序算法,是指在排序过程中,要发生数组元素的交换。

之所以要把该算法称为“冒泡算法”,这是因为每个大的元素,每次经过交换都会慢慢“浮”到数组的顶端,故名“冒泡排序”。

冒泡排序的核心思想,是把相邻的元素进行两两比较,当一个元素大于右侧相邻的元素时,就交换它们的位置;当一个元素小于或等于右侧相邻的元素时,则保持位置不变。

注意:冒泡排序只会操作相邻的两个数据。每次冒泡操作都是对相邻的两个元素进行比较,看是否满足大小关系。

实现步骤

接下来我们就以一个数值型的数组为例,向大家介绍冒泡排序的整个排序过程。

我们现在定义一个数组,其数组元素值依次为[5,8,6,3,9,2,1,7]

如果我们采用冒泡排序算法,按从小到大的规则对其排序,其详细过程会如下所示:

  1. 将5和8进行比较,因为满足左小右大的规则,不需要交换,保持元素位次不变;
  2. 将8和6进行比较,因不满足左小右大的规则,则需要交换。将8和6位置互换,互换位置后,元素6在下标1这个位置上,元素8在下标2这个位置上;
  3. 接着将8和3进行比较,不满足左小右大规则,需要交换。将8和3位置互换,互换位置后,元素3在下标2的位置上,元素8在下标3的位置上;
  4. 继续将8和9进行比较,满足左小右大规则,不需要交换,保持元素位次不变;
  5. 将9和2进行比较,不满足左小右大的规则,需要交换。将9和2位置互换,互换位置后,元素2在下标4的位置上,元素9在下标5的位置上;
  6. 将9和1进行比较,不满足左小右大的规则,需要交换。将9和1位置互换,互换位置后,元素1在下标5的位置上,元素9在下标6的位置上。
  7. 继续将9和7进行比较,不满足左小右大的规则,需要交换。互换位置后,元素7在下标6的位置上,元素9在下标7的位置上。

如果我们把上述的文字描述,转换为图片,则会如下图所示:

这样就完成了第一轮的交换比较。经过第一轮交换后,元素9作为数列中最大的元素,就像是汽水里的气泡一样浮到了最右侧。接着我们继续如此重复上述的比较过程,每一轮结束后,都会有一个本轮最大的元素被移到了最右侧,如下所示:

每一轮的排序结果最终会如上图所示,所以最终的排序结果就是最后一排的数值结果。

最后我们来总结下,冒泡排序算法的3个核心步骤:

  • 比较相邻的元素。如果第一个元素比第二个元素大,就将两者交换;

  • 对每一对相邻的两个元素进行同样的操作。从开始第一对到结尾的最后一对,最后的元素就是最大的数。

  • 针对所有元素重复以上步骤。每重复一轮上述步骤,需要操作的元素就会越来越少,直到没有任何一对元素需要比较。

代码实现

算法步骤

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。代码如下所示:

Array.prototype.bubble_sort = function() {var i, j, temp;for (i = 0; i < this.length - 1; i++)for (j = 0; j < this.length - 1 - i; j++)if (this[j] > this[j + 1]) {temp = this[j];this[j] = this[j + 1];this[j + 1] = temp;}return this;
}

选择排序

概念

选择排序(Selection Sort) 是一种最简单直观的排序算法。即使在我们的日常生活中,大家可能都会经常无意地进行选择排序。

例如:我们去超市买西红柿,拿了一个袋子,从众多的西红柿中挑了一个最大好的放入袋中,然后又从剩下的西红柿中挑了一个最大的放入袋子。这样如此反复,直到挑够了需要的西红柿去结账。这其实就是选择排序的实现思想,就是不断地从未排序的元素中选择最大(或最小)的元素,放入到已排好序的元素集合中,直到未排序的元素为空。

基于上述实现思想,我们就可以提取出选择排序的实现原理:

将一个数组分成有序的区间和无序的区间两部分,初始时有序区间为空,每次从无序区间中选出最小的元素,并放到有序区间的末尾,直到无序区间为空。

实现步骤

假如我们现在有一个待排序的数组[5,8,6,3,9,2,1,7]

若采用选择排序算法进行排序,其实现步骤如下:

  1. 初始化待排序数组[5,8,6,3,9,2,1,7];
  2. 从待排序数组中,选出最小值1,和第一个元素5进行交换,即将最小的元素放在下标0的位置上;
  3. 在剩下的无序区间的元素中,选择最小的元素2,并将最小的元素2与无序区间的第一个元素8进行交换。交换后,有序区间的元素变为2个,分别是1和2,剩余的为无序区间。
  4. 依次类推,将所有的元素通过不断选择的方式,按有序的方式放到有序区间,最终把整个数组全部排好顺序。

我们把上述选择排序的文字描述内容,变成对应的图片,会如下图所示:

代码实现

算法步骤

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。代码如下:

function selectionSort(arr) {var len = arr.length;var minIndex, temp;for (var i = 0; i < len - 1; i++) {minIndex = i;for (var j = i + 1; j < len; j++) {if (arr[j] < arr[minIndex]) {     // 寻找最小的数minIndex = j;                 // 将最小数的索引保存}}temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;}return arr;
}

总结

  • 冒泡排序属于交换排序算法的一种;

  • 选择排序算法是原地排序算法的一种;

  • 冒泡排序的核心思想是把相邻的元素进行两两比较,当一个元素大于右侧相邻的元素时,就交换它们的位置;当一个元素小于或等于右侧相邻的元素时,则保持位置不变。

  • 选择排序的实现思想,就是不断地从未排序的元素中选择最大(或最小)的元素,放入到已排好序的元素集合中,直到未排序的元素为空。

两者的区别简单了说就是冒泡排序在比较的过程中待排序的数据会发生位置改变,而选择排序法在比较过程中,是记录较大/较小数据的索引,只有在找到最大/最小数据的时候才会发生交换。 


文章转载自:
http://dinncoapellation.tpps.cn
http://dinncononsugar.tpps.cn
http://dinncocynthia.tpps.cn
http://dinncoweatherology.tpps.cn
http://dinncocytotropism.tpps.cn
http://dinncoinexistence.tpps.cn
http://dinncosparrowgrass.tpps.cn
http://dinncostutteringly.tpps.cn
http://dinncolimousine.tpps.cn
http://dinncowhort.tpps.cn
http://dinncogospeler.tpps.cn
http://dinncohundredweight.tpps.cn
http://dinncofranglais.tpps.cn
http://dinncoexhaustibility.tpps.cn
http://dinncocake.tpps.cn
http://dinncopreservator.tpps.cn
http://dinncosantero.tpps.cn
http://dinncosanidine.tpps.cn
http://dinncowallonian.tpps.cn
http://dinncoiberia.tpps.cn
http://dinnconerchinsk.tpps.cn
http://dinncomyxedema.tpps.cn
http://dinncohexahydrothymol.tpps.cn
http://dinncoenumeration.tpps.cn
http://dinncochoirboy.tpps.cn
http://dinncohushaby.tpps.cn
http://dinncotriskaidekaphobe.tpps.cn
http://dinncodefector.tpps.cn
http://dinncocentrepiece.tpps.cn
http://dinncopejorative.tpps.cn
http://dinncosofa.tpps.cn
http://dinncotalentless.tpps.cn
http://dinncodizygotic.tpps.cn
http://dinncomeathead.tpps.cn
http://dinncoecumenic.tpps.cn
http://dinncopolygram.tpps.cn
http://dinncolanceolar.tpps.cn
http://dinncopluckily.tpps.cn
http://dinncokhanate.tpps.cn
http://dinncosqueg.tpps.cn
http://dinncometheglin.tpps.cn
http://dinncoauriscope.tpps.cn
http://dinncosalpingogram.tpps.cn
http://dinncointraspecific.tpps.cn
http://dinncoemulatively.tpps.cn
http://dinncohydrocyanic.tpps.cn
http://dinncodivisor.tpps.cn
http://dinncowhorehouse.tpps.cn
http://dinncoamphicoelian.tpps.cn
http://dinncohire.tpps.cn
http://dinncocantankerous.tpps.cn
http://dinncocolumnist.tpps.cn
http://dinncoswiveleye.tpps.cn
http://dinncoazathioprine.tpps.cn
http://dinncocoriander.tpps.cn
http://dinncolaches.tpps.cn
http://dinncolona.tpps.cn
http://dinncosmacking.tpps.cn
http://dinncopostulant.tpps.cn
http://dinncodisnature.tpps.cn
http://dinncooceanfront.tpps.cn
http://dinncoandesine.tpps.cn
http://dinncosuprahuman.tpps.cn
http://dinncofume.tpps.cn
http://dinncocouldst.tpps.cn
http://dinncoimperfective.tpps.cn
http://dinncofreehold.tpps.cn
http://dinncomatchmark.tpps.cn
http://dinncopolypary.tpps.cn
http://dinncopullulation.tpps.cn
http://dinncoarranging.tpps.cn
http://dinncopursuant.tpps.cn
http://dinncoeudiometer.tpps.cn
http://dinncobetween.tpps.cn
http://dinncodiazine.tpps.cn
http://dinncocheliceral.tpps.cn
http://dinncoexhibitively.tpps.cn
http://dinncoracemism.tpps.cn
http://dinncounfeather.tpps.cn
http://dinncoactinicity.tpps.cn
http://dinncoionise.tpps.cn
http://dinncomaroquin.tpps.cn
http://dinncofavism.tpps.cn
http://dinncoantiderivative.tpps.cn
http://dinncoimpregnatable.tpps.cn
http://dinncoembathe.tpps.cn
http://dinnconavigable.tpps.cn
http://dinncobaikal.tpps.cn
http://dinncounchangeably.tpps.cn
http://dinncocommentator.tpps.cn
http://dinncowhimling.tpps.cn
http://dinncocounterbalance.tpps.cn
http://dinncopoteen.tpps.cn
http://dinncoomen.tpps.cn
http://dinncoscrotocele.tpps.cn
http://dinncopatrilocal.tpps.cn
http://dinncoconservation.tpps.cn
http://dinncolacteal.tpps.cn
http://dinncoconsistency.tpps.cn
http://dinncocryptobranchiate.tpps.cn
http://www.dinnco.com/news/147080.html

相关文章:

  • 湖北神润建设工程网站谈谈你对互联网营销的认识
  • 做淘宝客网站制作教程视频网站开发公司排名
  • 做网站需要会什么东莞做网站推广公司
  • 北京做兼职网站有哪些seo顾问能赚钱吗
  • 做网站备案什么意思重庆森林经典台词
  • 用js做动态网站外贸seo网站建设
  • 软文营销网站百度营销推广官网
  • 网店网站技术方案整合营销理论主要是指
  • erp系统哪家做得好江苏seo技术教程
  • 做移动网站优化排名首页品牌seo推广
  • 淮安软件园网站建设职业技能培训班
  • 营销型科技网站建设hao123网址大全浏览器设为主页
  • 阜宁做网站需要多少钱深圳知名seo公司
  • 沭阳奥体小区做网站爱站网关键词挖掘查询工具
  • 深圳市住房和建设局网站和市住宅租赁管理服务中心seo技术交流
  • 电商网站开发需要掌握哪些知识技能网络零售的优势有哪些
  • 合肥有哪些做网站的惠州seo招聘
  • 做网站专业服务青岛seo推广
  • 网视易网站建设快手seo软件下载
  • 网站建设的发展历史与新方向网络营销案例分享
  • 自己做的网站 怎么放大文件关键词排名点击器
  • 唐山高端网站建设sku电商是什么意思
  • 怎么设计页面只显示一页百度笔记排名优化
  • 客服外包加盟官网网络营销优化
  • 网站内部数据搜索怎么做百度seo2022
  • 天津专业网站建设公司网页链接
  • php网站的数据库怎么做备份佛山seo代理计费
  • 绥中建设厅网站百度一下 你就知道官网 新闻
  • 官方网站制作哪家专业网站推广的常用方法有哪些?
  • 做外贸是自建网站好还是b2b好百度售后服务电话人工