共同点
-都采用了分治算法
逆序对的研究
-衡量数列的有序程度
-暴力解法:考察每一个数对,算法复杂度:O(n^2)
归并排序求逆数对
-在归并比较的同时,可以依据比较结果,对逆序对进行计数
-归并排序过程中,第一次排序完成后,分成了两个数组
[2368]/[1457]
-先对2与1进行比较
2是第一个数组里最小的数仍比1大,则逆序计数器+4
-同理可以此类推,求逆序数
取数组中第n大的元素
-普通解法:将序列排列好以后进行选取
算法负杂度:O(nlogn)
快速排序解法
-每进行一次排序,相应的元素会处于他合适的位置,即序列完成排序以后的位置
-可基于上一次排序的结果进行下一次排序的区域选择
-若要选取数组中第2大的元素,则意味着在大于4的部分里寻找第二大的元素,继续在该部分里递归求解即可
算法复杂度:O(n)
算法复杂度分析:采用随机化快速排序以后,快排算法的期望复杂度为O(nlogn),而求取第n大元素的期望复杂度为:n+n/2+n/4+..+1,即O(n)