归并排序是什么
归并排序顾名思义有一个化归合并的过程,那要合并在这之前就有分离,这就是归并排序的步骤:先将要排序的一串数字劈开,劈到最小有序数列(也就是一个一个的时候,只有一个那肯定有序啊);第二步再将他们逐渐合并,继而变成一个有序数列。
为什么要用归并排序
算法复杂度:
最好情况:O(nlogn)
最坏情况:O(nlogn)
平均情况:O(nlogn)
空间复杂度:O(n)
稳定性:稳定
从以上的数据
可以看出归并排序比普通的排序在复杂度上有了很好的提升。
归并排序的代码实现:
上面这个代码还可用于求逆序数对的个数。
关键就是这段代码: