扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
没有什么区别。
创新互联是一家专注于网站设计制作、成都网站制作与策划设计,方正网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:方正等地区。方正做网站价格咨询:18980820575
作者多用了两个可以不用的变量而已(可能为了更直观,可能是作者忘记了可以写更少的代码)。
正如我们可能会写:
var s = get**();
alert(s);
可以直接写成这样:
alert(get**());
你说是不是。
在进行位置交换的时候使用以下模式,就可以实现不需要中间变量:
a[i] = a[i] + a[j];
a[j] = a[i] - a[j];
a[i] = a[i] - a[j];
举个栗子:
比如a[i]是8,a[j]是9,根据上面步骤有:
a[i] = a[i] + a[j]=8+9=17;
a[j] = a[i] - a[j]=17-9=8;
a[i] = a[i] - a[j]=17-8=9;
因此最终实现了无需中间变量即可交换两者的值。
!DOCTYPE html
html
body
/body
script type="text/javascript"
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;
}
};
};
return arr;
}
var testArr = new Array(3,5,4,1,6);
var sortArr = bubbleSort(testArr);
alert(sortArr);
/script
/html
可直接保存为html文件打开测试。
// 冒泡排序必须创建一个变量吗? 答案: NO NO NO! 不信请看下方↓↓↓
// 知识重点:连续对 2 个变量使用 3 次异或运算,可以交换两者的值!
let a = 10,
b = 99;
a ^= b;
b ^= a;
a ^= b;
console.log(a) // 99
console.log(b) // 10
------------------------------------------------------------------------------
示例: 冒泡排序
let numList = [2,6,4,1,9,8,10,7,5,3],
numListLen = numList.length;
for(let i = 0; i numListLen; i++){
for(let j = 0; j numListLen; j++){
if(numList[j] numList[j+1]){
numList[j] ^= numList[j+1];
numList[j+1] ^= numList[j];
numList[j] ^= numList[j+1];
}
}
}
console.log(numList); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流