冒泡排序(BubbleSort)
冒泡排序简介
算法如其名,就是让较小的元素像气泡一样向上浮,慢慢的冒出来。最终实现较小的元素在前,较大的元素在后。
冒泡排序的算法思想
循环数组中每个元素,依次比较当前元素与下一个元素,如果顺序错误(正序或倒序)就交换,直到没有元素交换,则完成当前元素的比较。
若对n个元素进行比较,一共需要n-1次比较,当进行到第k次比较则需进行n-k次比较。因此总的比较次数为:(n-1)+(n-2)+...+1 = n*(n-1)/2,时间复杂度为O(n^2)
冒泡排序图解
图片来自 https://www.itcast.cn/news/20191120/14135329023.shtml
执行算法前
执行算法后
执行过程
代码实现(JS)
var arr = [3, 43, 38, 5, 47, 15, 36, 26, 27, 2, 44, 4, 50, 19, 38] function BubbleSort(arr) { var n = arr.length for (var i = 0; i < n; i++) { for (var j = 0; j < n - i - 1; j++) { if (arr[j + 1] < arr[j]) { [arr[j + 1], arr[j]] = [arr[j], arr[j + 1]] } } } } BubbleSort(arr) console.log(arr) // [2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 38, 43, 44, 47, 50]
作者:味精王
链接:https://juejin.cn/post/7025230934408445982