十大经典排序算法之冒泡排序--JavaScript 实现

十大经典排序算法之冒泡排序

冒泡排序应该算是排序算法中最简单排序算法之一。算法

算法分析: 所谓冒泡,形象上来讲就像是水里的气泡同样,越接近水面,气泡越大。那对于咱们的数据来讲,首先咱们对集合进行遍历,而后对比相邻的两个元素,若是第一个元素比第二个元素大,则进行交换。这样一轮比较完毕,在集合最末尾的元素必定是最大的。依次类推,再来对除了最末尾的元素以外的元素进行比较,第二轮事后,倒数第二个元素就是第二大的元素,一直重复以上的过程直到所有排序完毕。

JavaScript 实现

输入 arr 为 [12, 32, 1, 4, 5]数组

// 遍历一次
function bubbleSort(arr = []) {
    for (let i = 0, len = arr.length; i < len - 1; i++) {
        if (arr[i] > arr[i + 1]) {
            [arr[i], arr[i + 1]] = [arr[i + 1], arr[i]]
        }
    }
}

第一次遍历以后,咱们会获得以下的结果:[12, 1, 4, 5, 32]
因此咱们只须要再对剩下的[12, 1, 4, 5]进行相同的比较便可。在外层再嵌套一层循环来实现。code

function bubbleSort(arr = []) {
    for (let j = 0, len = arr.length; j < len; j++) {
        for (let i = 0; i < len - j - 1; i++) {
            if (arr[i] > arr[i + 1]) {
                [arr[i], arr[i + 1]] = [arr[i + 1], arr[i]]
            }
        }
    }
}

以上的排序方法只处理了数组内容是数值的状况。若是数组里的元素是其余类型的数据,则须要在对元素进行两两比较处进行处理。排序

相关文章
相关标签/搜索