0%

排序算法

算法

  • 冒泡排序
  • 快速排序
  • 归并排序

总结

理解排序算法原理。测试

冒泡排序示例

1
2
3
4
5
6
7
8
9
10
11
function bubbleSort(arr) {
let n = arr.length;
for (let i = 0; i < n; i++) {
for (let j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j+1]) {
[arr[j], arr[j+1]] = [arr[j+1], arr[j]];
}
}
}
return arr;
}

快速排序简介

分治法,平均 O(n log n),最坏 O(n^2)。

归并排序简介

递归分解,合并步骤需要额外 O(n) 空间。

时间复杂度比较

算法 最好 平均 最坏
冒泡 O(n) O(n^2) O(n^2)
快速 O(n log n) O(n log n) O(n^2)
归并 O(n log n) O(n log n) O(n log n)

稳定性

  • 冒泡和归并稳定
  • 快速通常不稳定

应用场景

当数据量大时,推荐快速或归并排序;当希望稳定时选择归并。

FILLER_SORT_1
FILLER_SORT_2
FILLER_SORT_3
FILLER_SORT_4
FILLER_SORT_5
FILLER_SORT_6
FILLER_SORT_7
FILLER_SORT_8
FILLER_SORT_9
FILLER_SORT_10
FILLER_SORT_11
FILLER_SORT_12
FILLER_SORT_13
FILLER_SORT_14
FILLER_SORT_15
FILLER_SORT_16
FILLER_SORT_17
FILLER_SORT_18
FILLER_SORT_19
FILLER_SORT_20
FILLER_SORT_21
FILLER_SORT_22
FILLER_SORT_23
FILLER_SORT_24
FILLER_SORT_25
FILLER_SORT_26
FILLER_SORT_27
FILLER_SORT_28
FILLER_SORT_29
FILLER_SORT_30
FILLER_SORT_31
FILLER_SORT_32
FILLER_SORT_33
FILLER_SORT_34
FILLER_SORT_35
FILLER_SORT_36
FILLER_SORT_37
FILLER_SORT_38
FILLER_SORT_39
FILLER_SORT_40
FILLER_SORT_41
FILLER_SORT_42
FILLER_SORT_43
FILLER_SORT_44
FILLER_SORT_45
FILLER_SORT_46
FILLER_SORT_47
FILLER_SORT_48
FILLER_SORT_49
FILLER_SORT_50
FILLER_SORT_51
FILLER_SORT_52
FILLER_SORT_53
FILLER_SORT_54
FILLER_SORT_55
FILLER_SORT_56
FILLER_SORT_57
FILLER_SORT_58
FILLER_SORT_59
FILLER_SORT_60
FILLER_SORT_61
FILLER_SORT_62
FILLER_SORT_63
FILLER_SORT_64
FILLER_SORT_65
FILLER_SORT_66
FILLER_SORT_67
FILLER_SORT_68
FILLER_SORT_69
FILLER_SORT_70
FILLER_SORT_71
FILLER_SORT_72
FILLER_SORT_73
FILLER_SORT_74
FILLER_SORT_75
FILLER_SORT_76
FILLER_SORT_77
FILLER_SORT_78
FILLER_SORT_79
FILLER_SORT_80
FILLER_SORT_81
FILLER_SORT_82
FILLER_SORT_83
FILLER_SORT_84
FILLER_SORT_85
FILLER_SORT_86
FILLER_SORT_87
FILLER_SORT_88
FILLER_SORT_89
FILLER_SORT_90
FILLER_SORT_91
FILLER_SORT_92
FILLER_SORT_93
FILLER_SORT_94
FILLER_SORT_95
FILLER_SORT_96
FILLER_SORT_97
FILLER_SORT_98
FILLER_SORT_99
FILLER_SORT_100