数组、冒泡排序与去重

数组冒泡排序:

  var arr = [3,2,4,1];//3次

  //[3,2,1,4];第一次循环的结果

    //var n = null;

    // 从小到大排序:

// 第一步:数字交换;

    if(arr[0]>arr[1]){//0,1

           n = arr[0];

           arr[0] = arr[1];

           arr[1] = n;

    }//[2,3,4,1]

// 第二步:冒泡——将最大的数字冒泡到最后;

    for (var i = 0; i < arr.length-1; i++) {

           if(arr[i]>arr[i+1]){

                  n = arr[i];

                  arr[i] = arr[i+1];

                  arr[1+i] = n;

           }

    }

// 第三步:循环,对比每一个数字,让他们实现从小到大排列;

    for (var j = 0; j < arr.length-1; j++) {

           for (var i = 0; i < arr.length-1; i++) {

                  if(arr[i]>arr[i+1]){

                         n = arr[i];

                         arr[i] = arr[i+1];

                         arr[1+i] = n;

                  }

           }

    }

// 第四步:优化(已经冒到最后的最大数不用对比);

    for (var j = 0; j < arr.length-1; j++) {

           for (var i = 0; i < arr.length-1-j; i++) {

                  if(arr[i]>arr[i+1]){

                         n = arr[i];

                         arr[i] = arr[i+1];

                         arr[1+i] = n;

                  }

           }

    }

console.log(arr);

 

数组去重:

  var arr1 = [2,4,1,2,3,4,5,3,4,5];

  var arr2 = [];

  var n ;

//去重第1步,向空数组添加第一个数值;

  n=-1;

  if (n==-1) {

         arr2.push(arr1[0]);

  }

//去重第2步,判断原数组中的下一个值是否与新数组的值有相等情况,没有则插入新数组;

  for (var j = 0; j < arr2.length; j++){

         if(arr1[1]==arr2[j]){

                n=j;//如果有相等的,就改变n的值,让它不为-1;

                break;//此时跳出循环不用再往下对比了;

         }

  }

  if (n==-1) {

         arr2.push(arr1[1]);

  }

//去重第3步,使用循环,判断原数组中的所有值是否与新数组的值有相等情况,没有则插入新数组;

 

  for (var i = 0; i < arr1.length; i++) {

         n = -1;//arr1数组在取得一个值对比的时候,需要初始化n为-1,否则n会继续上一次产生的值,有可能在符合条件的时候依然不是-1;

           for (var j = 0; j < arr2.length; j++) {

                  if(arr1[i]==arr2[j]){

                         n=j;

                         break;

                  }

           }

             if (n==-1) {

                    arr2.push(arr1[i]);

             }

  }

console.log(arr2);

posted @ 2021-07-23 23:52  小黄耗子  阅读(122)  评论(0编辑  收藏  举报