冒泡排序应该算是排序算法中最简单排序算法之一。算法
算法分析: 所谓冒泡,形象上来讲就像是水里的气泡同样,越接近水面,气泡越大。那对于咱们的数据来讲,首先咱们对集合进行遍历,而后对比相邻的两个元素,若是第一个元素比第二个元素大,则进行交换。这样一轮比较完毕,在集合最末尾的元素必定是最大的。依次类推,再来对除了最末尾的元素以外的元素进行比较,第二轮事后,倒数第二个元素就是第二大的元素,一直重复以上的过程直到所有排序完毕。
输入 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]] } } } }
以上的排序方法只处理了数组内容是数值的状况。若是数组里的元素是其余类型的数据,则须要在对元素进行两两比较处进行处理。排序