沒有什么區(qū)別。
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設計制作、成都網(wǎng)站制作與策劃設計,方正網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:方正等地區(qū)。方正做網(wǎng)站價格咨詢:18980820575
作者多用了兩個可以不用的變量而已(可能為了更直觀,可能是作者忘記了可以寫更少的代碼)。
正如我們可能會寫:
var s = get**();
alert(s);
可以直接寫成這樣:
alert(get**());
你說是不是。
在進行位置交換的時候使用以下模式,就可以實現(xiàn)不需要中間變量:
a[i] = a[i] + a[j];
a[j] = a[i] - a[j];
a[i] = a[i] - a[j];
舉個栗子:
比如a[i]是8,a[j]是9,根據(jù)上面步驟有:
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;
因此最終實現(xiàn)了無需中間變量即可交換兩者的值。
!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文件打開測試。
//?冒泡排序必須創(chuàng)建一個變量嗎??答案:?NO?NO?NO!?不信請看下方↓↓↓
//?知識重點:連續(xù)對?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]