javascript 的排序算法实现
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 归并排序
- 快速排序
平均时间复杂度 | 额外空间 | 稳定排序 | |
---|---|---|---|
冒泡排序 | O(n^2) | O(1) | 是 |
选择排序 | O(n^2) | O(1) | 否 |
插入排序 | O(n^2) | O(1) | 是 |
希尔排序 | O(n^1.5) | O(1) | 否 |
归并排序 | O(n*logn) | O(n) | 是 |
快速排序 | O(n*logn) | O(logn) | 否 |
算法\数据数量级 | 10^4 | 10^5 | 10^6 | 10^7 |
---|---|---|---|---|
选择排序 | 101 ms | 9532 ms | 超时 | 超时 |
插入排序 | 2 ms | 2 ms | 6 ms | 47 ms |
冒泡排序 | 157 ms | 15202 ms | 超时 | 超时 |
希尔排序 | 6 ms | 14 ms | 120 ms | 1261 ms |
归并排序 | 3 ms | 5 ms | 33 ms | 305 ms |
快速排序 | 9 ms | 25 ms | 209 ms | 2049 ms |
原生 sort | 16 ms | 66 ms | 672 ms | 6967 ms |
算法\数据数量级 | 10^4 | 10^5 | 10^6 | 10^7 |
---|---|---|---|---|
选择排序 | 202 ms | 17586 ms | 超时 | 超时 |
插入排序 | 61 ms | 5800 ms | 超时 | 超时 |
冒泡排序 | 336 ms | 34611 ms | 超时 | 超时 |
希尔排序 | 11 ms | 23 ms | 240 ms | 2477 ms |
归并排序 | 13 ms | 44 ms | 385 ms | 4420 ms |
快速排序 | 8 ms | 8 ms | 36 ms | 290 ms |
原生 sort | 6 ms | 30 ms | 268 ms | 2692 ms |
算法\数据数量级 | 10^4 | 10^5 | 10^6 | 10^7 |
---|---|---|---|---|
选择排序 | 146 ms | 10337 ms | 超时 | 超时 |
插入排序 | 85 ms | 6302 ms | 超时 | 超时 |
冒泡排序 | 441 ms | 40833 ms | 超时 | 超时 |
希尔排序 | 14 ms | 35 ms | 464 ms | 5721 ms |
归并排序 | 11 ms | 53 ms | 460 ms | 5155 ms |
快速排序 | 12 ms | 29 ms | 255 ms | 2787 ms |
原生 sort | 17 ms | 76 ms | 723 ms | 7394 ms |