沒有中間變數的javascript氣泡排序

2021-08-10 04:08:53 字數 997 閱讀 9110

1樓:網oo豬

在進行位置交換的時候使用以下模式,就可以實現不需要中間變數:

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;

因此最終實現了無需中間變數即可交換兩者的值。

原本是8和9,交換後則變成了9和8,把這個原理用到氣泡排序交換資料的地方就可以實現你提問需要功能了。

2樓:建工小三

// 氣泡排序必須建立一個變數嗎? 答案: 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++)}}

console.log(numlist); //  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

用指向陣列的指標變數實現一維陣列中元素值得由小到大氣泡排序

3樓:山水阿銳

#include

#define n 5

void swap(int *p);

int main()}

python報錯沒有定義的變數,為什麼

區別在於建立某個變數和用到摸個變數。python建立變數是不需要申明 但用到某個變數是得保證這個變數是可用的 例如 a asd a a a ok a asd a a b budui 原則上是不用宣告,但是你放到迴圈語句裡面,你如果沒有初始化,那麼迴圈如何判斷呢。python函式裡面預設是不使用全域性...

keil裡面locals欄沒有任何變數顯示,怎麼解決

locals欄顯示的是你在函式中定義的變數值。比如 test 那麼當程式執行到函式test 時,你可以在內locals欄中 到i,j的值。容 如何在 keil 觀察視窗中檢視個別變數?view watch call stack window 這個在debug狀態時也是預設有開啟的 然後在這個視窗裡面...

matlab中如何求解變數和另變數的關係,例如f(x,y)0,求y和x的關係

可以用solve函式,例如 solve x 2 y 2 100 0 y ans x 2 100 1 2 x 2 100 1 2 你這裡不應該用引號,改為 solve real 1 q l 不過這個方程沒有解析解 matlab中知道變數之間的關係,怎麼用一個變數滿足的條件,解出另一個變數 z solv...