js 氣泡排序

2022-06-02 17:09:11 字數 757 閱讀 6332

氣泡排序

每次遍歷時,從前往後依次的比較相鄰兩個數的大小;如果前者比後者大,則交換它們的位置。這樣,一次遍歷之後,最大的元素就在數列的末尾! 採用相同的方法再次遍歷時,第二大的元素就被排列在最大元素之前。重複此操作,直到整個數列都有序為止

function

sortarr(arr,n)

'compare')//比較的次數 64

} }

}

氣泡排序的時間複雜度為o(n^2),即數列長度的平方次數

發生交換的次數根據不同數列的情況不同最終的次數也是不一樣的,但是比較的次數卻是固定的,這樣就顯得效率不高

高階版,新增乙個標記,在排序完成之後停止比較,以防止沒有意義的交換, 提高效率

function

bettersortarr(arr,n)

'compare')//比較的次數 40

//次數少了24次

}

if(!isflag)

}}

如果一趟遍歷中發生了交換,則標記為true,否則為false。如果某一趟沒有發生交換,說明排序已經完成!

let arr = [45,21,48,65,98,44,87,55,89,98]

let length =arr.length

sortarr(arr,length)

bettersortarr(arr,length)

JS 氣泡排序

氣泡排序 相鄰的兩個元素比較,如果前乙個數大於後乙個數,交換位置。1 每一次排序將無序數列中的最大值找到 2 乙個含有n的序列最多經過n 1次排序即可有序 3 經過排序後,數列會分為兩部分,一部分有序,一部分無序 4 一旦出現前乙個數大於後乙個數,就交換位置。氣泡排序 1.外層迴圈 1 含有n個數的...

js氣泡排序

原理 依次比較相鄰的兩個值,如果後面的比前面的小,則將小的元素排到前面。依照這個規則進行多次並且遞減的迭代,直到順序正確。解釋設一組資料 var arr 25,55,89,12,45,36,23,16,50 兩個迴圈當i 0的時候,裡面的迴圈完整執行,從j 0執行到j 6,這也就是第一遍排序,結果是...

js氣泡排序

上 const arr 10,2,4,6,0,4,7,8 const len arr.length for let i 0 i len i console.log arr 0,2,4,4,6,7,8,10 外層for迴圈 迴圈陣列每乙個元素。裡層for迴圈 保證陣列每乙個元素與其他元素作比較。分析 ...