JS中的冒泡排序

简介: JS中的冒泡排序
var arr = [2,1,3]; 

在C#中的冒泡排序:

for(var i=0;i<arr.length -1 ;i++){
  for(var j=0;j<arr.length -1 -i;j++){
    if(arr[j] - arr[j+1] > 0){
      var t = arr[j];
      arr[j] = arr[j+1];
      arr[j+1] = t;
    }
  }
}

JavaScript中的冒泡排序:

arr.sort(function(a,b) {return b-a});

是怎么演变过来的,步骤如下:

  1. 把if(arr[j] - arr[j+1] > 0)抽象成如下
if(f(arr[j] , arr[j+1]) > 0){}
  1. 在整个冒泡排序外面套上一个函数名,使其变为函数体
//arr:数组
//f:函数
var mySort = function(arr,f){
  //不给f传值,默认为升序排列
  //f=f ? f:function(a,b) {return a-b;};
  //下面是三元表达式的简写
  f=f || function(a,b) {return a-b;};
  for(var i=0;i<arr.length -1 ;i++){
    for(var j=0;j<arr.length -1 -i;j++){
      if(f(arr[j] , arr[j+1]) > 0){
        var t = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = t;
      }
    }
  }
}
  1. 使用这个函数
mySort(arr,f);
alert(arr);

  f代表一个函数,因此写成如下样式

//b-a可以实现降序排序
mySort(arr,function(a,b) {return b-a});
alert(arr);
相关文章
|
搜索推荐 JavaScript 算法
详细解析冒泡排序,JS如何基本实现的。
详细解析冒泡排序,JS如何基本实现的。
|
JavaScript
js实现插入排序
js实现插入排序
50 0
|
3月前
|
JavaScript
js数组冒泡排序
js数组冒泡排序
|
4月前
|
JavaScript
JS【详解】快速排序
JS【详解】快速排序
44 1
JS【详解】快速排序
|
3月前
|
JavaScript
js数组之冒泡排序
js数组之冒泡排序
29 0
|
6月前
|
JavaScript 搜索推荐 前端开发
js冒泡排序
js冒泡排序
25 0
|
6月前
|
JavaScript 前端开发 搜索推荐
JS数组排序
JS数组排序
46 0
|
JavaScript
JS实现数组排序
JS实现数组排序
40 0
|
JavaScript 前端开发
js实现数组排序
js实现数组排序
|
JavaScript
js实现选择排序
js实现选择排序
46 0