javascript中的冒泡排序法

来自:    更新日期:早些时候
JavaScript如何以封装的方式实现冒泡排序~

function bubbleSort (arr) { for (var i = 0; i arr[j+1]) { var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } }; }; return arr;}var testArr = new Array(3,5,4,1,6);var sortArr = bubbleSort(testArr);alert(sortArr);可直接保存为html文件打开测试。

在js中把你排序好的数据用变量保存起来,然后通过document.getEelementId(id).innerhtml=你保存数据的变量。就行了。

冒泡排序的原理是这样的,比方说有五个数字54321,要按从小到大排列;
首先比较前两个,就是5和4,如果第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置,即变成45321,然后比较第二个和第三个,交换位置,变成43521,然后第三个和第四个,第四个和第五个,这样一次循环下来,变成43215
所以,一层循环的效果就是挑出最大的一个数字5,冒泡到最后面。但是还要挑出第二大,第三大的数字,等等。所以一层循环根本就不够用,必须再套一层才行。像这个例子,五个数字,起码要进行四轮循环才行。至于为什么要this.length-i,是因为第一次比较五个数字,第二个只要比较前四个就行了,第五个肯定是最大的了。。
var array = [5, 4, 3, 2, 1];
var temp = 0;
for (var i = 0; i < array.length; i++)
{
for (var j = 0; j < array.length - i; j++)
{
if (array[j] > array[j + 1])
{
temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
}
console.log(array);

AVA气泡分类法

拓展资料

气泡排序的原理是,有五个数字54321,例如从小到大排列。

首先比较前两个,5个和4个,如果第一个小于第二个,没有运算,如果第一个大于第二个,则交换两个位置,即45321个,然后第二个和第三个,交换位置,变成43521个,然后第三个和第四个,第四个和第五个,这样的时间周期下来,转向。进入43215

因此,一个循环的效果是挑选出最大的数字5并将其泡泡到底。但是选择第二,第三等等。因此,一层循环是不够的,它必须是另一层。例如,五个数字,至少四个周期。至于为什么这个,长度-i,是因为第一个比较五个数字,第二个只要第一个四将做,第五个必须是最大的。

var数组=〔5, 4, 3,2, 1〕;

VATP=0;

对于(var i=0;i <数组,长度;i++)

{

对于(var j=0;j<数组,长度-i;j++)

{

IF(数组[j] >数组[j+1])

{

TEMP=数组[J+1 ];

数组[j+2]=数组[j];

数组[j]=TEMP;

}

}

}

控制台,日志(数组);



this.length-i。 是因为i代表已经循环的次数,减i 可以降低遍历次数,你不减i 也可以实现的,只是会增加遍历次数!

资料拓展:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成



冒泡,你去了解他的原理,这样写最直观,可以用一次循环,但是有些人不容易理解两层循环,就别说一层了


javascript中的冒泡排序法视频

相关评论:
  • 17633319402简述JavaScript的事件捕获和事件冒泡
    于媚桦JavaScript事件冒泡是为了捕捉和处理DOM内部传播的事件。但是你知道事件冒泡和事件捕获之间的区别吗?在这篇文章中,我将用相关的示例来讨论关于这个主题你所需要了解的全部情况。事件流的传播在介绍事件捕获和事件冒泡之前,先来看下一个事件是如何在DOM内部传播的。如果我们有几个嵌套的元素处理同一个事件...

  • 17633319402web前端---JavaScript阻止冒泡和取消默认事件(默认行为)
    于媚桦JavaScript中的事件处理有冒泡和捕获两种模式,通过event.stopPropagation()函数可以阻止事件在捕获和冒泡阶段的传播。在W3C标准中,这个方法是e.stopPropagation(),而在IE中则是e.cancelBubble = true。冒泡事件指的是,当在一个元素上绑定事件(如点击"click"事件),事件会从该元素开始向上级元素逐级触发...

  • 17633319402js数组冒泡排序?
    于媚桦js中冒泡排序1、解析:快速排序是对冒泡排序的一种改进,第一趟排序时将数据分成两部分,一部分比另一部分的所有数据都要小。然后递归调用,在两边都实行快速排序。2、冒泡排序:双层循环,内部循环每次选出最大值或者最小值,放到头上或者放在尾部快速排序:递归调用,每次递归选出一个“中值”,头部和...

  • 17633319402javascript的事件模型有哪些
    于媚桦事件冒泡:主要是IE浏览器用于解决事件流的技术,就是重事件源的事件被触发 它就会想自己的父节点一层层的去触发事件。事件捕获:是Netscape用于解决事件流的技术,就是从父节点向子节点去触发事件。DOM事件流:是FireFox用于解决事件流的技术,既有事件冒泡和事件捕获 事件处理程序:传统事件:一个事件源...

  • 17633319402javascript中的冒泡排序法
    于媚桦冒泡排序的原理是这样的,比方说有五个数字54321,要按从小到大排列;首先比较前两个,就是5和4,如果第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置,即变成45321,然后比较第二个和第三个,交换位置,变成43521,然后第三个和第四个,第四个和第五个,这样一次循环下来...

  • 17633319402javascript的addeventlistener()及attachevent()区别分析
    于媚桦JavaScript中的addEventListener和attachEvent都是用于处理事件的方法,但它们之间存在一些重要的区别。主要区别在于事件的执行流程和浏览器支持。addEventListener与attachEvent的区别分析:1. 事件执行流程不同:addEventListener:该方法按照捕获或冒泡模式中的指定顺序来处理事件。它支持冒泡和捕获两种事件流。在事件...

  • 17633319402JavaScript实现十大排序算法(图文详解)
    于媚桦冒泡排序的特点,是一个个数进行处理。第i个数,需要与后续的len-i-1个数进行逐个比较。为什么是`len-i-1`个数? 因为数组末尾的i个数,已经是排好序的,确认位置不变的了。 为什么确认位置不变,因为它们固定下来之前,已经和前面的数字都一一比较过了。functionbubbleSort(arr){constlen=arr.length;for(leti=0...

  • 17633319402什么是JavaScript事件流及事件处理程序详解
    于媚桦事件捕获:js会顺着文档流顺序由外往内,依次触发事件。即从DOM树的根到叶子,粉->蓝->绿 事件冒泡:js会逆着文档流顺序由内至外,一次触发事件。即从DOM树的叶子到根,绿->蓝->粉 补充一点:多数时候推荐事件冒泡,因为大多数主流浏览器都兼容两种事件,但一开始ie是不支持事件捕获的,后来ie...

  • 17633319402在javascript中什么是事件委托 原理是什么
    于媚桦要了解委托的原理,首先要理解DOM事件的过程。Dom事件分为两个阶段,如图:事件捕获阶段(红色箭头顺序)事件冒泡阶段(绿色箭头顺序)在事件捕获阶段,事件源依次从defaultView(可以理解为整个页面)一直传播到具体的目标(target)。从广泛到具体。在事件冒泡阶段,事件源依次从target传播到defaultview。从具体...

  • 17633319402Javascript的事件流模型都有什么?
    于媚桦JavaScript中的事件流模型有冒泡事件流、捕获事件流和DOM事件流。其中dom同时支持两种事件模型,但捕获性事件先开始,从document开始也结束于document,dom模型的独特之处在于文本也可以触发事件

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网