javascript中五种常见的排序之冒泡排序
Posted kongvv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中五种常见的排序之冒泡排序相关的知识,希望对你有一定的参考价值。
1、冒泡排序
冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。如果两个元素相等,是不会再交换的。
数组中有 N 个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置。
第一轮就可以选出一个最大的数放在最后面;
第二轮选出前N-1个数中最大的数放在N-1位置上;
第三轮...
那么经过
n-1
(数组的 length - 1) 轮,就完成了所有数的排序。 这样就理解为什么外层for循环里 i<length-1,因为循环n-1次;
内层for循环是第i次循环的时候,数组后面已经固定了i个数值,不需要再和其比较,故length-1-i;
冒泡排序总的平均时间复杂度为O(n^2);
javascript版代码如下:
1 var bubbleSort = function(arr) 2 3 for(var i = 0;i<arr.length-1;i++) 4 for(var j = 0;j<arr.length-1-i;j++) 5 if(arr[j]>arr[j+1]) 6 var k = arr[j]; 7 arr[j] = arr[j+1]; 8 arr[j+1] = k; 9 10 11 12 console.log(arr); 13 14 15 bubbleSort([2,5,6,3,4,6,64,34,69]);
以上是关于javascript中五种常见的排序之冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章