十大经典排序算法之冒泡排序
冒泡排序应该算是排序算法中最简单排序算法之一。
算法分析: 所谓冒泡,形象上来说就像是水里的气泡一样,越接近水面,气泡越大。那对于我们的数据来说,首先我们对集合进行遍历,然后对比相邻的两个元素,如果第一个元素比第二个元素大,则进行交换。这样一轮比较完毕,在集合最末尾的元素一定是最大的。依次类推,再来对除了最末尾的元素之外的元素进行比较,第二轮过后,倒数第二个元素就是第二大的元素,一直重复以上的过程直到全部排序完毕。
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]
进行相同的比较即可。在外层再嵌套一层循环来实现。
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]]
}
}
}
}
以上的排序方法只处理了数组内容是数值的情况。如果数组里的元素是其他类型的数据,则需要在对元素进行两两比较处进行处理。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。