泡排序也稱為冒泡排序法和起泡排序法。
基本思想:第趟排序是從序列中前n-i+1個元素的第1個元素開始典格,相鄰兩個元素進行比較,若前者大于后者台丛,兩者交換位置耍缴,否則不交換。經(jīng)過如此一趟排序挽霉,使得n-i+1個元素中值最大元素被安置在序列的第n-i+1個位置上防嗡。重復的執(zhí)行若干趟,直到某一趟排序過程中不出現(xiàn)元素交換位置的動作侠坎,排序結(jié)束蚁趁。
算法如下:
function bubbleSort(arr) {
let n = arr.length
let flag = 1
let i = n-1, j
while ( i>0 && flag==1 ) {
flag = 0
for ( j=0; j<i; j++) {
if( arr[j] > arr[j+1] ){
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
flag = 1
}
}
i--
}
return arr
}
let arr = [5,3,8,1,9,2,7,4,6,10]
bubbleSort(arr)
性能:
時間復雜度:最好O(n),平均O(n2)实胸。是穩(wěn)定排序法他嫡。