JavaScript算法-冒泡排序

冒泡排序

  • 冒泡原理

水下面有很多个气泡,每个气泡体积并不相同,根据常识应该知道体积大的气泡会较快冒出水面,那么这种形式的排序就是冒泡排序.每次对需要排序的集合一一进行比较,最大的率先排序完成.

  • 图解冒泡

冒泡图存在各种,动态图or高智商交换2D图,我们这边利用表格展示冒泡排序的过程

外层循环
0 1 2 3 4  
7 1 2 4 3  
1 2 4 3 7 i=4
1 2 3 4 7 i=3
1 2 3 4 7 i=2
1 2 4 3 7 i=1
内层循环
0 1 2 3 4  
7 1 2 4 3  
1 7 2 4 3 j=1
1 2 7 4 3 j=2
1 2 4 7 3 j=3
1 2 4 3 7 j=4

 

  • 算法实现

冒泡排序应该是排序算法中比较容易理解和实现的,直接看代码

function swap(A, i, j){
   const t = A[i]
   A[i] = A[j]
   A[j] = t
}
function bubble_sort(A){
    for(let i=A.length-1; i>=1; i--){ //第一次循环结束i指向第一大得值,依次类推
        for(let j=1; j<=i; j++){ 
            //循环结束j指向 A[0]-A[j]中的最大值
            A[j-1]>A[j] && swap(A, j-1, j)
        }
        //循环结束A[i]-A[i-1]已经排序
    }
}

 

 

你可能感兴趣的:(JavaScript算法)