Github源码:https://github.com/linjing-lab/sorting-algorithms
| Algorithm | Time Complexity | Space Complexity | ||
|---|---|---|---|---|
| — | Best | Average | Worst | Worst |
| Quicksort | Ω ( n log ( n ) ) \Omega(n \log(n)) Ω(nlog(n)) | Θ ( n log ( n ) ) \Theta(n \log(n)) Θ(nlog(n)) | O ( n 2 ) O(n^2) O(n2) | O ( log ( n ) ) O(\log(n)) O(log(n)) |
| Mergesort | Ω ( n log ( n ) ) \Omega(n \log(n)) Ω(nlog(n)) | Θ ( n log ( n ) ) \Theta(n \log(n)) Θ(nlog(n)) | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | O ( n ) O(n) O(n) |
| Timsort | Ω ( n ) \Omega(n) Ω(n) | Θ ( n log ( n ) ) \Theta(n \log(n)) Θ(nlog(n)) | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | O ( n ) O(n) O(n) |
| Heapsort | Ω ( n log ( n ) ) \Omega(n \log(n)) Ω(nlog(n)) | Θ ( n log ( n ) ) \Theta(n \log(n)) Θ(nlog(n)) | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | O ( 1 ) O(1) O(1) |
| Bubble Sort | Ω ( n ) \Omega(n) Ω(n) | Θ ( n 2 ) \Theta(n^2) Θ(n2) | O ( n 2 ) O(n^2) O(n2) | O ( 1 ) O(1) O(1) |
| Insertion Sort | Ω ( n ) \Omega(n) Ω(n) | Θ ( n 2 ) \Theta(n^2) Θ(n2) | O ( n 2 ) O(n^2) O(n2) | O ( 1 ) O(1) O(1) |
| Selection Sort | Ω ( n 2 ) \Omega(n^2) Ω(n2) | Θ ( n 2 ) \Theta(n^2) Θ(n2) | O ( n 2 ) O(n^2) O(n2) | O ( 1 ) O(1) O(1) |
| Tree Sort | Ω ( n log ( n ) ) \Omega(n \log(n)) Ω(nlog(n)) | Θ ( n log ( n ) ) \Theta(n \log(n)) Θ(nlog(n)) | O ( n 2 ) O(n^2) O(n2) | O ( n ) O(n) O(n) |
| Shell Sort | Ω ( n log ( n ) ) \Omega(n \log (n)) Ω(nlog(n)) | Θ ( n ( log ( n ) ) 2 ) \Theta(n(\log (n))^2) Θ(n(log(n))2) | O ( n ( log ( n ) ) 2 ) O(n(\log (n))^2) O(n(log(n))2) | O ( 1 ) O(1) O(1) |
| Bucket Sort | Ω ( n + k ) \Omega(n + k) Ω(n+k) | Θ ( n + k ) \Theta(n + k) Θ(n+k) | O ( n 2 ) O(n^2) O(n2) | O ( n ) O(n) O(n) |
| Radix Sort | Ω ( n k ) \Omega(nk) Ω(nk) | Θ ( n k ) \Theta(nk) Θ(nk) | O ( n k ) O(nk) O(nk) | O ( n + k ) O(n+k) O(n+k) |
| Counting Sort | Ω ( n + k ) \Omega(n + k) Ω(n+k) | Θ ( n + k ) \Theta(n + k) Θ(n+k) | O ( n + k ) O(n + k) O(n+k) | O ( k ) O(k) O(k) |
| Cubesort | Ω ( n ) \Omega(n) Ω(n) | Θ ( n log ( n ) ) \Theta(n \log(n)) Θ(nlog(n)) | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | O ( n ) O(n) O(n) |