laoboxie / js-sort

javascript的排序算法实现

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

js-sort

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

About

javascript的排序算法实现


Languages

Language:JavaScript 100.0%