氣泡排序的理解

2021-10-05 05:27:56 字數 1370 閱讀 9351

什麼是氣泡排序,就是兩個相鄰元素之間進行比較,然後較大的數字交換到右邊。

設定乙個陣列arr=[1,5,3,7,6,8,4,2]

先進行第一輪比較:

for

(let i=

0;i1;i++)}

i=0 arr[

0] arr[

1] 較大的是5 不交換位置

//此時順序 1,5,3,7,6,8,4,2

i=1 arr[

1] arr[

2] 較大的是5 交換位置

//此時順序 1,3,5,7,6,8,4,2

i=2 arr[

2] arr[

3] 較大的是7 不交換位置

//此時順序 1,3,5,7,6,8,4,2

i=3 arr[

3] arr[

4] 較大的是7 交換位置

//此時順序 1,3,5,6,7,8,4,2

i=4 arr[

4] arr[

5] 較大的是8 不交換位置

//此時順序 1,3,5,6,7,8,4,2

i=5 arr[

5] arr[

6] 較大的是8 交換位置

//此時順序 1,3,5,6,7,4,8,2

i=6 arr[

6] arr[

7] 較大的是8 交換位置

//此時順序 1,3,5,6,7,4,2,8

為什麼是length-1而不是length

假設是length,那麼我們還有一步 i=7 arr[7] arr[8]但是arr[8]是不存在的,undefined無法進行比較

以上是第一輪比較完畢,我們可以得出乙個結論氣泡排序一輪結束以後,可以得到該陣列的最大值

如果我們要全部進行比較每次都這樣迴圈要迴圈7次,所以我們採用雙層迴圈

最外邊一層 i 代表迴圈次數,內層 j 代表第 i 次的一輪迴圈,因為每一輪迴圈過後就可以找出乙個最大值,所以內層我們可以每一輪少比較一次

i=0 第一次外層迴圈 內層迴圈到7

i=1第二次外層迴圈 內層迴圈到6

…由此可得 內層每輪迴圈將減少(i+1)次

const arr=[1

,5,3

,7,6

,8,4

,2];

for(

let i=

0;i1;i++)}

} console.

log(arr)

<

/script>

氣泡排序的核心就是 雙層迴圈和交換變數

氣泡排序的理解

int temp 作為交換媒介 for int i 0 i a.length i 外層迴圈 啟動內層迴圈,並改變內層迴圈次數限制。內層迴圈 比較 交換相鄰的兩個數,比較次數是陣列裡的資料個數減1。理解 假設陣列a裡有5個數。第一層迴圈會迴圈5次,也就是啟動5次第二層迴圈,同時每次都將改變第二層迴圈限...

理解 氣泡排序 快速排序

練習 second text hao long 片.建立乙個結構體,用來儲存姓名和分數 typedef student student intmain for int i 0 i num 1 i for int i 0 i num i getchar getchar 用來暫停程式,以便檢視程式輸出的...

氣泡排序的個人理解

去新松面試筆試題中最後一道是氣泡排序,看到這題先是興奮後是悲哀。興奮的是這麼簡單啊,上大學時整的老明白了,考試的時候也為數不多的自己答的題。悲哀的是畢業後就再也沒用過,全都就飯吃了。想想看我最有文化的時候應該就是高三了,但是當年的數理化知識現在還記得多少?花了乙個小時惡補了一下,唉!這學習能力趕上老...