Javascript冒泡排序算法详解
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
function sort(elements){
for(var i=0;i<elements.length-1;i++){
for(var j=0;j<elements.length-i-1;j++){
if(elements[j]>elements[j+1]){
var swap=elements[j];
elements[j]=elements[j+1];
elements[j+1]=swap;
}
}
}
}
var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8];
console.log('before: ' + elements);
sort(elements);
console.log(' after: ' + elements);
效率:
时间复杂度:最好:O(n),最坏:O(n^2),平均:O(n^2)。
空间复杂度:O(1)。
稳定性:稳定。
相关推荐
-
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
本文实例讲述了JavaScript实现的冒泡排序法及统计相邻数交换次数.分享给大家供大家参考,具体如下: <html> <head>JS冒泡排序</head> <body> <script> var arr=[-1,-2,-30,-4,-5,-6]; var flag=false; //判断相邻两个数是否交换过 var n=0; //计算交换次数 for(var i=0;i<arr.length-1;i++){ //i表示的是每次找出来的最
-
js交换排序 冒泡排序算法(Javascript版)
比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最后一个. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较. function sort(elements){ for(var i=0;i<elements.length-1;i++){ for(var j=0;j<elements.length-i-1;j++){ if(elemen
-
JavaScript中的冒泡排序法
利用sort()冒泡排序: var arr = [5,39,8,1,2,13,55]; arr = arr.sort(function(a,b){return a-b}); console.log(arr);//1,2,5,8,13,39,55 不声明第三个变量冒泡排序: 第一层遍历数组的个数(要遍历多少次),第二次遍历(共要循环几次) a = 10; //第一个元素 b = 5; //下一个元素 if(a>b){ a = a+b; // a(15) = 10 +5; b = a-b; // b
-
js实现数组冒泡排序、快速排序原理
本文为大家分享了js数组冒泡排序.快速排序的实现原理,供大家参考,具体内容如下 1.冒泡排序: 随便从数组中拿一位数和后一位比较,如果是想从小到大排序,那么就把小的那一位放到前面,大的放在后面,简单来说就是交换它们的位置,如此反复的交换位置就可以得到排序的效果. var arr = [3,1,4,2,5,21,6,15,63]; function sortA(arr){ for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j+
-
js常用排序实现代码
复制代码 代码如下: <script> Array.prototype.swap = function(i, j) { var temp = this[i]; this[i] = this[j]; this[j] = temp; } Array.prototype.bubbleSort = function() { for (var i = this.length - 1; i > 0; --i) { for (var j = 0; j < i; ++j) { if (this[j
-
JS实现冒泡排序,插入排序和快速排序并排序输出
在一次面试中被问到了此问题,但是真是懵了,没能回答上来,后来通过JS整理了一下,在结合html代码做了一个文本框,把输入的内容从文本框排序输出,再次不做叙述了,下面通过一段代码给大家展示下: 以下是代码: index.html <!DOCTYPE html> <html> <head> <title>Sorting</title> <link rel="stylesheet" type="text/css&qu
-
JavaScript 冒泡排序和选择排序的实现代码
废话不多说了,直接给大家贴代码了,具体代码如下所述: var array = [1,2,3,4,5]; // ---> 服务 //效率 ---> 针对一个有序的数组 效率最高 //标志 true false for(var j = 0; j < array.length - 1;j++ ){ //- j 每次排序完成之后 后面减少比较的次数 var isTrue = true; //如果数组本身就是升序,则直接输出 for(var i = 0; i < array.length -
-
javascript 冒泡排序 正序和倒序实现代码
复制代码 代码如下: <script type="text/javascript"> var R1=[5,2,10,4,90,88,65,62]; var R2=[5,2,10,4,90,88,65,62]; function BubbleSort1(){ var n=R1.length; for(var i=0;i<n-1;i++){ var flag=false; for(var j=0;j<n-i;j++){ var temp; if(R1[j]<R
-
js对数组中的数字从小到大排序实现代码
例子 1 In this example we will create an array and sort it alphabetically: var arr = new Array(6) arr[0] = "Jani" arr[1] = "Hege" arr[2] = "Stale" arr[3] = "Kai Jim" arr[4] = "Borge" arr[5] = "Tove"
-
javascript冒泡排序小结
冒泡排序示例,双向冒泡排序与对双向冒泡排序稍微的改进的可视化效果. 代码很简单,不知道有木有未知bug. 大神请勿吐槽 冒泡排序示例 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;
-
33种Javascript 表格排序控件收集
1. jQuery tablesorter http://tablesorter.com/docs/ 2. Table sorting with Prototype http://tetlaw.id.au/view/blog/table-sorting-with-prototype/ 3. Sorttable http://www.kryogenix.org/code/browser/sorttable/ 4. Table Sorting Javascript http://yoast.com/
-
js 排序动画模拟 冒泡排序
而在某些场景中,队列确实像一支奇兵,可以带来不错的效果,比如配合定时器使用,可以模拟时间差效果 复制代码 代码如下: function createDq(){ var dq = [], size = 0; return { setDq:function(queue){ dq = queue; size = queue.length; }, queue:function(fn){ size ++; dq.push(fn); }, dqueue:function(){ size --; return
-
javascript中数组的冒泡排序使用示例
复制代码 代码如下: <html> <head> <title>数组的排序</title> <script> var arr = [2,4,9,11,6,3,88]; //采用冒泡排序,向上冒泡,最小值在最上边 for(var x = 0 ; x < arr.length; x++){//控制趟数 for(var y = x + 1 ; y < arr.length ; y++){ //依次比较,如果后面的元素大于前面的元素则交换 i
随机推荐
- javascript正则表达式使用replace()替换手机号的方法
- Reg命令使用详解 批处理操作注册表必备
- JAVA实现线程的三种方法
- python中getattr函数使用方法 getattr实现工厂模式
- VS2005打开VS2008项目的2种方法(vs2005怎么打开2008)
- PHP中运用jQuery的Ajax跨域调用实现代码
- Android提高之Activity+Intent用法示例
- 关于数据与后端进行交流匹配(点亮星星)
- python通过自定义isnumber函数判断字符串是否为数字的方法
- 简单谈谈Python中的反转字符串问题
- Python实现全局变量的两个解决方法
- C#实现程序单例日志输出功能
- 通过“回文字算法”复习C++语言
- JavaScript操作URL的相关内容集锦
- jquery代码实现多选、不同分享功能
- 用roll.js实现的图片自动滚动+鼠标触动的特效
- 深入串的模式匹配算法(普通算法和KMP算法)的详解
- ASP.NET中实现Form表单字段值自动填充到操作模型中
- php 从数据库提取二进制图片的处理代码
- 一个酷炫的Android图表制作框架