深圳市伙伴行网络科技有限公司(单题)

题型 难易度 出现频率 浏览 评论
问答题 25 0
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题
  • 使用JavaScript将一个无序的数组改变成有序(不能使用sort函数,并预估可能出现问题并解决)。(如:[1,5,3,4,2]=>[1,2,3,4,5])

可以使用冒泡排序的方式,写了一个函数,代码如下

function bubbleSort (arr) {

  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]) {

        /* 设置第三方变量来用于数据交换,且这个变量放在循环的外面性能要好

        var temp = arr[j];

        arr[j] = arr[j+1];

        arr[j+1] = temp;

        */


 // 利用加法来实现两个数据的交换

        // arr[j] = arr[j] + arr[j+1];

        // arr[j+1] = arr[j] - arr[j+1];

        // arr[j] = arr[j] - arr[j+1];


 // 利用位运算实现两个数据的交换

        arr[j] = arr[j]^arr[j+1];

        arr[j+1] = arr[j]^arr[j+1];

        arr[j] = arr[j]^arr[j+1];   

      }

    };

  };

  return arr;