数组方法

2019-07-16  本文已影响0人  梦回98

1、快速排序。

var arr=[2,4,6,88,78,67,65,9,12];      
function quicklySort(list){     
  if(list.length < 1 ){       //如果list.length小于1的话。
    return list;              //那么就返回原来的数组中,重新循环。
  }
  var centerIndex = Math.floor(list.length / 2);            //数组的中间数下标
  var centerNum = list.splice(n,1)[0];                  //数组的中间数
  var left = [],right = [];                       //创建两个空数组用于装参数。
  for(var i=0;i<list.length;i++){                 
    if(list[i] < num){                            //当数组里面的数值小于中间数
      left.push(list[i])                          //推入到左边的空数组中。
    }else{
      right.push(list[i])                         //大于中间数的数,推入到右边的数组中。
    }
  }
  return quicklySort(left).concat([num],quicklySort(right))    //返回值 左边的数组和中间的数值还有右边的数组。
}
console.log(quicklySort(arr))                     //打印重新排序的数组。

2、判断质数:自然数大于1且只能被一和他本身整除的数字.

function zhiNum(n1,n2){
var arr=[];
  for(var i=0;i<n2;i++){
    if(isSure(i)){
      arr.push(i)
    }
  }
  return arr
}
function isSure(n){//传进来的每一个数从2开始向后取余  ==0时表示能被整除 不等于0不能被整除此时这个数是质数
  for(var j=2;j<n;j++){
    if(n % j == 0){
      return false
    }
  }
  return true
}
console.log(zhiNum(1,100)).

3、冒泡排序。

var brr = [1, 344, 55, 34, 23, 2, 67, 82] //创建一个数组
function maoPao(arr) {
  var l = arr.length; // 设置一个长度;
  for (var i = 0; i < l - 1; i++) { // 变量i为坐标,获取数组中数值,所以是l-1为坐标的长度;
    for (var j = 0; j < l - 1 - i; j++) { // 变量J为
      if (arr[j] > arr[j + 1]) {
        var num = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = num
      }
    }
  }
  return arr
}
console.log(pao(brr))
上一篇 下一篇

猜你喜欢

热点阅读