简单的冒泡以及双向冒泡排序案列
这次给大家带来简单的冒泡以及双向冒泡排序案列,使用冒泡序列有哪些注意事项?,下面就是实战案例,一起来看一下。
冒泡排序示例,双向冒泡排序与对双向冒泡排序稍微的改进的可视化效果。
冒泡排序示例
var ls=[ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ]; for(var i=0;i<ls.length;i++){ for(var j=i+1;j<ls.length;j++){ if(ls[i]>ls[j]){ ls[i]=ls[i]+ls[j]; ls[j]=ls[i]-ls[j]; ls[i]=ls[i]-ls[j]; } } }
双向冒泡排序示例
var ls=[ 6,13,98,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ]; for(var i=0;i<ls.length;i++){ for(var j=i+1;j<ls.length-i;j++){ if(ls[lent-1-i]<ls[lent-j]){ ls[lent-1-i]=ls[lent-1-i]+ls[lent-j]; ls[lent-j]=ls[lent-1-i]-ls[lent-j]; ls[lent-1-i]=ls[lent-1-i]-ls[lent-j]; }//后面的比较 if(ls[i]>ls[j]){ ls[i]=ls[i]+ls[j]; ls[j]=ls[i]-ls[j]; ls[i]=ls[i]-ls[j]; }//前面的比较 } }
双向冒泡排序稍微改进示例
var ls=[ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ]; var lent=ls.length; for(var i=0;i<ls.length;i++){ for(var j=i*2;j<ls.length-2*i;j++){ if(ls[i*2]>ls[j+1]){ ls[i*2]=ls[i*2]+ls[j+1]; ls[j+1]=ls[i*2]-ls[j+1]; ls[i*2]=ls[i*2]-ls[j+1]; }//保持内层第一个数为循环最小 if(ls[lent-i*2-1]<ls[lent-j-1]){ ls[lent-i*2-1]=ls[lent-i*2-1]+ls[lent-j-1]; ls[lent-j-1]=ls[lent-i*2-1]-ls[lent-j-1]; ls[lent-i*2-1]=ls[lent-i*2-1]-ls[lent-j-1]; }////保持内层倒数第一个数为循环最大 if(ls[lent-2-i*2]<ls[lent-j-1]){ ls[lent-2-i*2]=ls[lent-2-i*2]+ls[lent-j-1]; ls[lent-j-1]=ls[lent-2-i*2]-ls[lent-j-1]; ls[lent-2-i*2]=ls[lent-2-i*2]-ls[lent-j-1]; }//倒数上一个 if(ls[i*2+1]>ls[j+1]){ ls[i*2+1]=ls[i*2+1]+ls[j+1]; ls[j+1]=ls[i*2+1]-ls[j+1]; ls[i*2+1]=ls[i*2+1]-ls[j+1]; }//下一个 } }
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
以上是简单的冒泡以及双向冒泡排序案列的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

JavaScript中常见的冒泡事件:掌握常用事件的冒泡特性,需要具体代码示例引言:在JavaScript中,事件冒泡是指事件会从嵌套层次最深的元素开始向外层元素传播,直到传播到最外层的父级元素。了解并掌握常见的冒泡事件,可以帮助我们更好地处理用户交互和事件处理。本文将介绍一些常见的冒泡事件,并提供具体的代码示例来帮助读者更好地理解。一、点击事件(click

JS事件中哪些不会冒泡?在JavaScript中,事件冒泡是指当一个元素触发了某个事件时,该事件会逐级向上冒泡到更高层的元素,直到冒泡到文档根节点。然后,事件处理程序会按照冒泡的顺序依次执行。然而,并不是所有的事件都会冒泡。有些事件在触发后只会执行目标元素上的事件处理程序,而不会冒泡到更高层的元素上。下面是一些常见的不会冒泡的事件:focus和blur事件:

为何同一个事件冒泡会重复发生两次?事件冒泡是一种在浏览器中常见的事件传递机制。当一个元素触发了某个事件,这个事件将会从被触发的元素开始向上级元素依次传递,直到传递到了文档的根元素。这个过程就像水泡在水中冒起,所以被称为事件冒泡。然而,有时我们会发现同一个事件冒泡会重复发生两次,这是为什么呢?原因主要有两个方面:事件注册和事件处理。首先,我们需要明确的是,事件

先捕获还是先冒泡?解析事件流程的优劣势事件流程是Web开发中一个重要的概念,它描述了事件从发生到被处理的过程。在处理事件时,有两种主要的流程模型:先捕获后冒泡和先冒泡后捕获。这两种模型在不同的场景下各有优劣势,需要根据实际情况选择合适的模型。先捕获后冒泡是指在事件冒泡阶段前,先执行事件捕获阶段。事件捕获阶段从事件目标的根节点开始,逐级向下传递,直到到达目标元

学习单击事件冒泡,掌握前端开发中的关键概念,需要具体代码示例前端开发是当今互联网时代中的一个重要领域,而事件冒泡是前端开发中的一个关键概念之一。理解和掌握事件冒泡对于编写高效的前端代码至关重要。本文将介绍什么是事件冒泡,以及如何在前端开发中使用事件冒泡的概念。一、什么是事件冒泡事件冒泡是指当一个元素上的事件被触发时,会先从最内层的元素开始,然后逐级向父级元素

掌握事件冒泡,轻松实现复杂交互效果,需要具体代码示例事件冒泡(EventBubbling)是前端开发中一个重要的概念,它指的是当一个元素上的事件被触发后,该事件会自动向父级元素传播,直到传播到文档根元素。掌握了事件冒泡的原理和应用,我们可以轻松实现复杂的交互效果,提升用户体验。下面将通过具体的代码示例,来帮助读者更好地理解和应用事件冒泡。代码示例一:点击展

单击事件冒泡的作用及其对网页交互的影响在网页开发中,事件是实现交互和响应用户操作的关键。其中,事件冒泡是一种常见的事件机制,它允许一个嵌套的元素层次结构中的事件同时被多个元素响应。本文将详细解释单击事件冒泡的作用,并说明它对网页交互的影响,同时提供一些具体的代码示例。一、单击事件冒泡的概念单击事件冒泡(ClickEventBubbling)指的是当一个元

如何利用单击事件冒泡实现更灵活的网页交互体验引言:在前端开发中,我们经常会遇到需要在网页的一部分元素上添加点击事件的情况。然而,如果页面中的元素很多,为每个元素都添加点击事件将变得非常繁琐和低效。单击事件冒泡就可以帮助我们解决这个问题,通过将点击事件添加到公共父元素上,实现更灵活的网页交互体验。一、单击事件冒泡的原理单击事件冒泡是指当一个元素上的点击事件被触
