js 各种算法

作者: 贵贵贵子 | 来源:发表于2021-12-17 17:49 被阅读0次

    数组排序

    冒泡排序

     let arr = [1, 33, 33, 1, 2,1 , 57,33];
        console.log([...new Set(arr)])
        let orderArr = [];
        function Fun(arr) {
          const len = arr.length;
          for (let i = 0; i < len - 1; i++) {
              for(let j=0; j < len -1 -i;j++){
                  let temp = arr[j]
                  if(arr[j]>arr[j+1]){
                    arr[j]=arr[j+1]
                    arr[j+1]=temp
                  }
              }
          }
          return arr
        }
    

    选择排序(跟冒泡排序的思维有点像,只是一直跟最后一个比,这样一轮下来,就排完序了。)

    var arr = [1,2,3,5,4,7,6];
        for(var j = 0, l = arr.length; j < l; j++){
            for(k = l; k > j; k--){
                if(arr[j] > arr[k]){
                    var temp = arr[j];
                    arr[j] = arr[k];
                    arr[k] = temp;
                }
            }
        }
        console.log(arr); //[1,2,3,4,5,6,7]  
    

    数组去重

    首先是最简单实现的(Set)

    let arr = [1, 33, 33, 1, 2,1, 57,33];
    console.log([...new Set(arr)])// [1, 33, 2, 57]
    

    双重for循环

      var arr = [1, 5, 6, 0, 7, 3, 0, 5, 9, 5, 5];
        function unique(arr) {
          for (var i = 0, len = arr.length; i < len; i++) {
            for (var j = i + 1, len = arr.length; j < len; j++) {
              if (arr[i] === arr[j]) {
                arr.splice(j, 1);
                j--; // 每删除一个数j的值就要减1
                len--; // j值减小时len也要相应减1(减少循环次数,节省性能)
              }
            }
          }
          return arr;
        }
    

    indexOf

    var arr = [1, 2, 3 , 3, 2, 3, 3, 3];
        function unique(arr) {
          var arr1 = []; // 新建一个数组来存放arr中的值
          for (var i = 0, len = arr.length; i < len; i++) {
            if (arr1.indexOf(arr[i]) === -1) {
              arr1.push(arr[i]);
            }
          }
          return arr1;
        }
        console.log(unique(arr)); // [1,2,3]
    

    相关文章

      网友评论

        本文标题:js 各种算法

        本文链接:https://www.haomeiwen.com/subject/cywifrtx.html