归并排序和快速排序的衍生问题
MergeSort和QuickSort代表了分治算法的两类基本思想:
MergeSort: 在分的时候没有做太多的考虑, 就是将数组一分为二,然后递归的进行归并排序。关键在于这样分完之后,我们怎么讲他们归并起来。
QuickSort:在如何分上面做了很多设计,采用了一个标定点,使用partition过程将其移到了合适的位置,然后将数组分割成了两部分,这样分完之后,我们在做合的过程就不用在做太多考虑了。只需要一步一步递归下去即可。
两个直接从MergeSort和QuickSort衍生出来的问题
求一个数组中逆序对数量
图中2,3是顺序对, 2,1 是逆序对
一个数组中逆序对的数量是衡量一个数组的有序程度
上面一个数组,逆序对为0, 下面一个数组,任何两个数都是逆序对,这个数组的逆序对数量达到了最大值
双重循环,遍历没两个元素,if x < y, 逆序对数量++
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦