共同点
-都采用了分治算法
逆序对的研究
-衡量数列的有序程度
-暴力解法:考察每一个数对,算法复杂度: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)
分治算法与排序技巧
本文探讨了分治算法在逆序对计算及快速查找数组中第n大元素的应用。介绍了利用归并排序求解逆序对的方法及其复杂度,并讨论了通过改进快速排序算法实现高效查找特定位置元素的技术。
1185

被折叠的 条评论
为什么被折叠?



