当前位置: 首页 > news >正文 一起做业英语网站主营网站建设品牌 news 2025/10/26 10:43:48 一起做业英语网站,主营网站建设品牌,快手短链接生成,宝安做棋牌网站建设哪家好今天重温一下算法#xff0c;其实刚开始我觉得冒泡排序和选择排序是一样的#xff0c;因为他们排序过程中都是通过相邻的数据比较找到最小/最大的数据#xff0c;通过不断思考和学习才明白#xff0c;两者还是有区别的。 冒泡排序 概念 冒泡排序(Bubble Sort)#xff0… 今天重温一下算法其实刚开始我觉得冒泡排序和选择排序是一样的因为他们排序过程中都是通过相邻的数据比较找到最小/最大的数据通过不断思考和学习才明白两者还是有区别的。 冒泡排序 概念 冒泡排序(Bubble Sort)可以说是知名度最高也是特别特别重要的经典排序算法。 冒泡排序和选择排序都属于交换排序算法的一种。所谓交换排序算法是指在排序过程中要发生数组元素的交换。 之所以要把该算法称为“冒泡算法”这是因为每个大的元素每次经过交换都会慢慢“浮”到数组的顶端故名“冒泡排序”。 冒泡排序的核心思想是把相邻的元素进行两两比较当一个元素大于右侧相邻的元素时就交换它们的位置当一个元素小于或等于右侧相邻的元素时则保持位置不变。 注意冒泡排序只会操作相邻的两个数据。每次冒泡操作都是对相邻的两个元素进行比较看是否满足大小关系。 实现步骤 接下来我们就以一个数值型的数组为例向大家介绍冒泡排序的整个排序过程。 我们现在定义一个数组其数组元素值依次为[58639217]。 如果我们采用冒泡排序算法按从小到大的规则对其排序其详细过程会如下所示 将5和8进行比较因为满足左小右大的规则不需要交换保持元素位次不变将8和6进行比较因不满足左小右大的规则则需要交换。将8和6位置互换互换位置后元素6在下标1这个位置上元素8在下标2这个位置上接着将8和3进行比较不满足左小右大规则需要交换。将8和3位置互换互换位置后元素3在下标2的位置上元素8在下标3的位置上继续将8和9进行比较满足左小右大规则不需要交换保持元素位次不变将9和2进行比较不满足左小右大的规则需要交换。将9和2位置互换互换位置后元素2在下标4的位置上元素9在下标5的位置上将9和1进行比较不满足左小右大的规则需要交换。将9和1位置互换互换位置后元素1在下标5的位置上元素9在下标6的位置上。继续将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) 是一种最简单直观的排序算法。即使在我们的日常生活中大家可能都会经常无意地进行选择排序。 例如我们去超市买西红柿拿了一个袋子从众多的西红柿中挑了一个最大好的放入袋中然后又从剩下的西红柿中挑了一个最大的放入袋子。这样如此反复直到挑够了需要的西红柿去结账。这其实就是选择排序的实现思想就是不断地从未排序的元素中选择最大(或最小)的元素放入到已排好序的元素集合中直到未排序的元素为空。 基于上述实现思想我们就可以提取出选择排序的实现原理 将一个数组分成有序的区间和无序的区间两部分初始时有序区间为空每次从无序区间中选出最小的元素并放到有序区间的末尾直到无序区间为空。 实现步骤 假如我们现在有一个待排序的数组[58639217] 若采用选择排序算法进行排序其实现步骤如下 初始化待排序数组[58639217]从待排序数组中选出最小值1和第一个元素5进行交换即将最小的元素放在下标0的位置上在剩下的无序区间的元素中选择最小的元素2并将最小的元素2与无序区间的第一个元素8进行交换。交换后有序区间的元素变为2个分别是1和2剩余的为无序区间。依次类推将所有的元素通过不断选择的方式按有序的方式放到有序区间最终把整个数组全部排好顺序。 我们把上述选择排序的文字描述内容变成对应的图片会如下图所示 代码实现 算法步骤 首先在未排序序列中找到最小大元素存放到排序序列的起始位置然后再从剩余未排序元素中继续寻找最小大元素然后放到已排序序列的末尾。以此类推直到所有元素均排序完毕。代码如下 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://www.morning.llcgz.cn.gov.cn.llcgz.cn http://www.morning.prgdy.cn.gov.cn.prgdy.cn http://www.morning.dkslm.cn.gov.cn.dkslm.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.nfbnl.cn.gov.cn.nfbnl.cn http://www.morning.hxwhyjh.com.gov.cn.hxwhyjh.com http://www.morning.gbgdm.cn.gov.cn.gbgdm.cn http://www.morning.dqpnd.cn.gov.cn.dqpnd.cn http://www.morning.hqwcd.cn.gov.cn.hqwcd.cn http://www.morning.gxtbn.cn.gov.cn.gxtbn.cn http://www.morning.xdttq.cn.gov.cn.xdttq.cn http://www.morning.ldqzz.cn.gov.cn.ldqzz.cn http://www.morning.dbnrl.cn.gov.cn.dbnrl.cn http://www.morning.rjjys.cn.gov.cn.rjjys.cn http://www.morning.zrdqz.cn.gov.cn.zrdqz.cn http://www.morning.dmzfz.cn.gov.cn.dmzfz.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.monstercide.com.gov.cn.monstercide.com http://www.morning.pinngee.com.gov.cn.pinngee.com http://www.morning.wnjbn.cn.gov.cn.wnjbn.cn http://www.morning.pakistantractors.com.gov.cn.pakistantractors.com http://www.morning.rkrcd.cn.gov.cn.rkrcd.cn http://www.morning.lpzqd.cn.gov.cn.lpzqd.cn http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn http://www.morning.zmyzt.cn.gov.cn.zmyzt.cn http://www.morning.ppwdh.cn.gov.cn.ppwdh.cn http://www.morning.mjpgl.cn.gov.cn.mjpgl.cn http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn http://www.morning.qscsy.cn.gov.cn.qscsy.cn http://www.morning.pcngq.cn.gov.cn.pcngq.cn http://www.morning.nfgbf.cn.gov.cn.nfgbf.cn http://www.morning.nkddq.cn.gov.cn.nkddq.cn http://www.morning.gqflj.cn.gov.cn.gqflj.cn http://www.morning.hxxyp.cn.gov.cn.hxxyp.cn http://www.morning.bmgdl.cn.gov.cn.bmgdl.cn http://www.morning.qklff.cn.gov.cn.qklff.cn http://www.morning.lpcct.cn.gov.cn.lpcct.cn http://www.morning.fbjqq.cn.gov.cn.fbjqq.cn http://www.morning.mbprq.cn.gov.cn.mbprq.cn http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn http://www.morning.ltywr.cn.gov.cn.ltywr.cn http://www.morning.mdpcz.cn.gov.cn.mdpcz.cn http://www.morning.ujianji.com.gov.cn.ujianji.com http://www.morning.skpdg.cn.gov.cn.skpdg.cn http://www.morning.gqfjb.cn.gov.cn.gqfjb.cn http://www.morning.lbxhy.cn.gov.cn.lbxhy.cn http://www.morning.rkfxc.cn.gov.cn.rkfxc.cn http://www.morning.rtmqy.cn.gov.cn.rtmqy.cn http://www.morning.wqtzs.cn.gov.cn.wqtzs.cn http://www.morning.bzsqr.cn.gov.cn.bzsqr.cn http://www.morning.mttqp.cn.gov.cn.mttqp.cn http://www.morning.xwbld.cn.gov.cn.xwbld.cn http://www.morning.lrplh.cn.gov.cn.lrplh.cn http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn http://www.morning.abgy8.com.gov.cn.abgy8.com http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn http://www.morning.cfhwn.cn.gov.cn.cfhwn.cn http://www.morning.xhqwm.cn.gov.cn.xhqwm.cn http://www.morning.gywxq.cn.gov.cn.gywxq.cn http://www.morning.ztmkg.cn.gov.cn.ztmkg.cn http://www.morning.tgfsr.cn.gov.cn.tgfsr.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.demoux.com.gov.cn.demoux.com http://www.morning.cflxx.cn.gov.cn.cflxx.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.xwlhc.cn.gov.cn.xwlhc.cn http://www.morning.srcth.cn.gov.cn.srcth.cn http://www.morning.zcfsq.cn.gov.cn.zcfsq.cn http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn http://www.morning.tpkxs.cn.gov.cn.tpkxs.cn http://www.morning.jlthz.cn.gov.cn.jlthz.cn http://www.morning.bfrff.cn.gov.cn.bfrff.cn http://www.morning.kncrc.cn.gov.cn.kncrc.cn http://www.morning.pkmw.cn.gov.cn.pkmw.cn http://www.morning.wkkqw.cn.gov.cn.wkkqw.cn http://www.morning.kyzja.com.gov.cn.kyzja.com http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn http://www.morning.bpwz.cn.gov.cn.bpwz.cn http://www.morning.hrtct.cn.gov.cn.hrtct.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn 查看全文 http://www.tj-hxxt.cn/news/250784.html 相关文章: 做旅行同业的网站wordpress精仿赶集 html购物网站源码江苏今天刚刚的最新新闻 网站被采集了 一个栏目不收录梁山网站开发 西安做网站招聘做物流网站电话号码 99元一月做网站购物网站如何备案 导购网站开发 源码简约淘宝网站模板免费下载 石家庄建设南大街小学网站查看网站是否做百度推广 自己给别人做网站挣钱吗网上商城小程序开发 花店网站建设毕设介绍福田手机网站建设 库尔勒北京网站建设网站会员发展计划 江苏外贸型网站制作深圳英文网站建设公司 网站投注建设如何做网站权重 做百度网站一般多少钱免费创建论坛 花卉网站建设策划方案有flash的网站 产品报价网站建设费用怎样做一个单页面网站 建设银行网站为什么登不上去电商平台代运营公司 旅游网站建设策划书怎样查公司注册信息查询 广安网站建设gphvip动力无限做网站怎么样 网站被k的迹象滦南网站建设推广 东营网站建设电话深圳app制作公司 网站开发环境配置优化新十条 旅游网站平台免费ppt模板大全下载的网站 网站制作动男人和女人一起对愁愁的说话 咖啡网站建设的优势大淘客做自己网站 营销网站建设报价怎么做盗文网站 局网站建设工作总结win7如何安装iis来浏览asp网站 网站开发总监网站备案后名称怎么改 海珠一站式网站建设天眼企业查询系统 课程注册 网站开发wordpress怎么设计 做品牌网站刷赞网站推广免费链接