1 var a,b,c,swap; 2 a=+prompt(); 3 b=+prompt(); 4 c=+prompt(); 5 //冒泡排序:最壞情況:比較n*(n-1)/2輪,以下是3個數比較,考慮最壞情況要比較3輪 6 if(a>b) 7 { 8 swap=a;//判斷表達式中:第一個值>第二 ...
1
var a,b,c,swap;
2 a=+prompt(); 3 b=+prompt(); 4 c=+prompt(); 5 //冒泡排序:最壞情況:比較n*(n-1)/2輪,以下是3個數比較,考慮最壞情況要比較3輪 6 if(a>b) 7 { 8 swap=a;//判斷表達式中:第一個值>第二個值:將第一個值賦予變數swap 9 a=b; 10 b=swap; 11 } 12 if(b>c)//判斷表達式中:第一個值>第二個值:將第一個值賦予變數swap 13 { 14 swap=b; 15 b=c; 16 c=swap; 17 } 18 if(a>b)//判斷表達式中:第一個值>第二個值:將第二個值賦予變數swap 19 { 20 swap=b; 21 b=a; 22 a=swap; 23 } 24 alert(a+","+b+","+c) 25 /* 26 怎樣分析上述的過程呢,先確定交換的是哪兩個變數: 27 以最壞情況來算: 28 一開始是:a b c 29 第一輪:b a c 30 第二輪:b c a 31 第三輪:c b a 32 可以看出,實際上:在最後,變數a、b、c分別存放著c、b、a 33 34 問:在寫代碼的時候要怎樣快速理解並書寫呢? 35 總結; 36 (1)if的判斷表達式寫的是進行順序的比較就行,不用思考變數的值 37 (2)總是要將比較的兩個值的前面的那一個值賦予給另一個用於交換的變數(除了最後一輪):例如上面的變數swap
註:上述僅供自己理解,不代表他(她)人的看法 38 */