一、排序算法类别
常见比较排序:
- 冒泡排序
- 选择排序(普通选择排序、堆排序)
- 插入排序(普通插入排序、希尔排序)
- 快速排序
- 归并排序
常见非比较排序:
- 计数排序
- 基数排序
- 桶排序
复杂度表:
二、冒泡排序 Bubble Sort(O(n²))
大致流程:
1.从第一个元素开始,比较每两个相邻元素,如果前者大,就交换位置
2.每次遍历结束,能够找到该次遍历过的元素中的最大值
3.如果还有没排序过的元素,继续1
演示图:
代码实现:
function bubbleSort(arr) {
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length -1 - i; j++) {
if (arr[j] > arr[j+1]) swap(arr, j ,j+1)
}
}