js 陣列氣泡排序

2022-09-05 11:30:10 字數 1727 閱讀 3237

氣泡排序原理:

公升序:比較相鄰元素,如果第乙個比第二個大,就交換它們兩個

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對.在這一點,最後的元素應該會是最大的數.

針對所有的元素重複以上的步驟,除了最後乙個.

持續每次對原來越少的元素重複上面的步驟,

直到沒有任何一對數字需要比較.

1

//陣列arr

2 arr = [12,10,15,8,4]

對上面的陣列進行排序

分析: 

第一次比較: 

arr[0]= 12 大於10,向右移動  結果: 10 12 15 8 4

arr[1]= 12 小於15,停止比較  結果: 10 12 15 8 4

arr[2]= 15 大於8,向右移動  結果: 10 12 8 15 4

arr[3]= 15 大於4,向右移動  結果: 10 12 8 4 15

第二次比較:

arr[0]= 10  小於12,  停止比較    結果: 10 12 8 4 15

arr[1]= 12   大於8,    向右移動    結果: 10 8 12 4 15

arr[2]= 12   大於4,    向右移動    結果: 10 8 4 12 15

arr[3]= 12   小於15,   停止比較   結果: 10 8 4 12 15

第三次比較: 

arr[0]= 10 大於8,     向右移動   結果: 8 10 4 12 15

arr[1]= 10 大於4,      向右移動   結果: 8 4 10 12 15

arr[2]= 10 小於12,    停止比較    結果: 8 4 10 12 15

arr[3]= 12 小於15,     停止比較    結果: 8 4 10 12 15

第四次比較: 

arr[0]= 8 大於4, 向右移動    結果: 4 8 10 12 15

arr[1]= 8  小於10,停止比較    結果: 4 8 10 12 15

arr[2]= 10  小於12,停止比較    結果: 4 8 10 12 15

arr[3]= 12  小於15,停止比較    結果: 4 8 10 12 15

1

//氣泡排序寫法

2var arr = [12, 10, 15, 8, 4]

3for(var i = 4; i > 0; i--) 10}

11 }

優化上面的**:

第一次比較結果將最大值放到陣列最後

第二次比較結果將第二最大值放到陣列倒數第二位

第三次比較結果將第三最大值放到陣列倒數第三位

第四次比較將結果第四最大值放到陣列倒數第四位

至此比較結束

我們看到上面的比較結果:

第一次比較四次得到最大值

第二次比較三次得到第二最大值

第三次比較兩次得到第三最大值

第四次比較一次得到第四最大值

**優化: 

1

//優化氣泡排序寫法23

var arr = [12, 10, 15, 8, 4]45

function

arrsort(arr) 13}

14}15return

arr16

}17 console.log(arrsort(arr))

JS陣列經典氣泡排序

將8,4,3,1,4,6,等數字按照從小到大的順序依次輸出 var arr new array arr.push 8 arr.push 4 arr.push 3 arr.push 1 arr.push 5 arr.push 6 vartemp for var i 0 i for var x in a...

js 陣列排序法(氣泡排序 快速排序)

1.氣泡排序 原理 將陣列的相鄰兩個元素進行比較,大的就往後移,小的往前,依次比較並且進行遞減迭代。var arr 54,36,89,1,3,5,2 function sortarr arr return arr sortarr arr 3.快速排序法 原理 選擇乙個基準點,一般選摺為math.fl...

JS陣列排序(冒泡 快速 插入)

將陣列中的相鄰兩個元素進行比較,將比較大 較小 的數通過兩兩比較移動到陣列末尾 開始 執行一遍內層迴圈,確定乙個最大 最小 的數,外層迴圈從陣列末尾 開始 遍歷到開始 末尾 將要排序的陣列分成兩部分,每次從後面的部分取出索引最小的元素插入到前一部分的適當位置 在看完上面的東西之後,不知道大家有沒有發...