Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说java排序算法总结「终于解决」,希望能够帮助你!!!。
排序,这是一个很古老但是又很经典的问题,世界上有很多中优秀排序算法的实现,在这里,我总结了其他比较常用的几种排序算法
1.时间复杂度比较
算法 | 乱序时间复杂度 | 有序时间复杂度 |
---|---|---|
插入排序 | O(N^2) | O(N) |
希尔排序 | O(N^2) | O(N) |
冒泡排序 | O(N^2) | O(N) |
基数排序 | O(N) | O(N) |
桶排序 | O(N) | |
计数排序 | O(N) | |
归并排序 | O(NlogN) | O(NlogN) |
快速排序 | O(NlogN) | O(N^2) |
堆排序 | O(NlogN) |
2.空间复杂度比较
算法 | 空间复杂度 |
---|---|
插入排序 | O(1) |
希尔排序 | O(1) |
冒泡排序 | O(1) |
基数排序 | O(N) |
桶排序 | O(N+M) M是额外辅助空间(桶数量) |
计数排序 | O(N) |
归并排序 | O(N) |
快速排序 | O(1) |
堆排序 | O(1) |