陣列的氣泡排序

2021-08-15 21:35:33 字數 1600 閱讀 7958

// 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 這裡你要知...