原生js数组排序(封装方法)

//两值互换

function Sort(arr, index){ //参数arr代表数组,index代表数组元素下标

  arr[index] += arr[index + 1];  //a+=b;
  arr[index + 1] = arr[index] - arr[index + 1]; // b = a - b;
  arr[index] -= arr[index + 1]; //a -= b;
}
function arrays(arr, asc){ //参数arr代表数组,sac为设置升降序
  for(var i = 1; i < arr.length; i++){
    for(var k = 0; k < arr.length - 1; k++){
      if(asc){ //如果asc为true则通过,否则则不通过
        if(arr[k] > arr[k + 1]){
          Sort(arr, k); //在这里调用两值互换函数
        }
      }else{
        if(arr[k] < arr[k + 1]){
          Sort(arr, k); //在这里调用两值互换函数
        }
      }
    }
  }
  return arr;
}

var array = arrays([2, 6, 3, 9, 28, 15, 26, 4, 25], false);//true为升序,false为降序
console.log('array==>>', array);

上一篇:华为编程题思考--------字符集合


下一篇:二分查找