// var ary = [4,3,5,2,1];
//氣泡排序的思想:讓當前項與後一項進行比較,如果當前項大於後一項,兩者交換位置
//第一輪比較:
//拿出陣列的第一項4與後一項3比較,4>3,交換位置[3,4,5,2,1]
//4<5 不交換位置[3,4,5,2,1]
//5>2 交換位置[3,4,2,5,1]
//5>1 交換位置[3,4,2,1,5]
//雖然沒有實現最後的目標,但是已經把陣列中當前最大的那個值5已經放到陣列的末尾位置了
//第一輪比較了四次,一共5個數,不用和自己比,最多比四次
//第二輪比較:
//3<4 不交換位置
//4>2 交換位置[3,2,4,1,5]
//4>1 交換位置[3,2,1,4,5]
//也沒有實現最後的目標,但是把剩餘項中最大的那個4放在倒數第二位了
//第二輪比較了三次,首先不用和自己比,最多四次,但是第一輪我們已經把最大的乙個數放到末尾了,不需要再和末尾的5比了
//第三輪比較:
//3>2 交換位置[2,3,1,4,5]
//3>1 交換位置[2,1,3,4,5]
//第三輪比較了兩次,首先不用和自己比,最多四次,但是第一輪第二輪我們已經把最大的倆個數放到了末尾,不需要再和4/5比了
//第四輪比較:
//2>1 交換位置[1,2,3,4,5]
//每一輪當前項和後一項倆倆比較的話,雖然不一定達到最後的目標結果,但是已經把當前最大的那個值放在後面了->陣列一共有5項,我只需要比較4輪,把四個最大值分別放到末尾,就實現了排序,一共最多需要比較多少輪ary.length-1
// i 輪數:i-0;i// j 代表每一輪比較的次數
//兩者交換位置
// var a = 12;
// var b = 13;
// var c = null;
// c = a;
// a = b;
// b = c;
// var a = 13;
// var b = 15;
// a = a+b; //28
// b = a-b; //13
// a = a-b; //15
// function bubblesort(ary)
// }
// }
// return ary;
// }
// var ary = [4, 3, 5, 1, 2];
// var res = bubblesort(ary);
// console.log(res);
//優化
//當flag=false時,退出迴圈
function
bubblesort
(ary)
}if (flag) else
}return ary
}var ary = [2, 1, 3, 5, 6];
var res = bubblesort(ary);
console.log(res);
script>
陣列的氣泡排序
首先我們要理解排序的定義 氣泡排序 bubble sort 相鄰的兩個數逐個的做比較,如果前乙個數比後乙個數小那麼就交換過來,當第一輪比較完畢之後最小的值一定在末尾 我們可以先畫出以一張圖 陣列兩個相鄰的值去比較後面的數大於前面的數就會去交換,因此每輪比較後最小值都會出現在這次比較的最後一位 第二次...
陣列排序 氣泡排序
氣泡排序 氣泡排序 bubble sort 基本思想 兩個數比較大小,較大的數下沉,較小的數冒起來。演算法描述 比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數 針對所有的元素重複以上的步驟,除了最後乙...
陣列,氣泡排序
從鍵盤中任意輸入任意多個數字,即可告訴你最大值和最小值 include void max int str,int n int main 上面得到的是你要輸入的整數的值 下面的函式使用氣泡排序的方式來進行比較的 max a,n return 0 void max int str,int m 這裡你要知...