中考复读学校网站怎么做wordpress 和shopify
news/
2025/9/30 23:18:45/
文章来源:
中考复读学校网站怎么做,wordpress 和shopify,营销型网站的作用是,贵阳免费做网站求逆序对
划分归并对数组进行调整的合理性在于
每次划分数组后#xff0c;在前面数组的元素与后面数组元素相对次序不会颠覆#xff0c;就是前面元素在前面划分出的数组里随便调整#xff0c;也依然在后面数组的任意元素里的前面#xff0c;而不可能调整到后面数组的任意…求逆序对
划分归并对数组进行调整的合理性在于
每次划分数组后在前面数组的元素与后面数组元素相对次序不会颠覆就是前面元素在前面划分出的数组里随便调整也依然在后面数组的任意元素里的前面而不可能调整到后面数组的任意元素里的后面所以在调整时即使影响也只是会影响前面数组里的逆序对数而不会影响前面数组里的某个元素和后面数组里任意元素组成逆序对
所以递归归并思路就是先划分数组目的就是最后返回出这两个前后数组里的元素所能组成的逆序对数即只考虑的是两个数组之间组成的逆序对数而没有考虑数组内元素组成的逆序对数
因为要不断递归数组内的元素组成的对数在底层递归时已求解出而且保证到上层时每个数组都是处于已排好序的状态
找前后数组的逆序对数就用两个指针指头元素如果前数组的头元素比后元素大就不断出后数组的元素直到不再大于前元素前元素的首个元素大于那么前数组里的剩下所有元素都比后面的首个元素大即前面的剩的数量*从开始小于到后面首个比前面头元素大的之间的数量最后终点就是其中一个取完
二分回顾
二分查找可以找到数组元素中的极大值或极小值也可以找到有序数组中的特定值
找极小值 担心的是如果中间元素的右边比中间元素小就会使左指针右移到中指针处但是如果最小元素是在左区间里就会出问题
确实会出问题所以二分的应用场景是有序的由于是旋转数组所以序列里至多存在两个有序列只有相邻处无单调性
如果中指针比右指针大只能说明右指针在小序列里中指针在大序列里最小值就在这俩区间内让左指针右移到中指针处
如果中指针比右指针小由于有序说明中指针到右指针的区间内一直单调即位于同一区间内可能是大的也可能是小的但最小值一定不在其中但可能在左端点所以让右指针左移到中指针找另一半区间
如果中指针和右指针相等可能的情况有两种一种是小序列和大序列里都有这个元素然后指针都指在这个元素上这种情况下最小数字在区间内另一种是这俩相等元素之间就在一个序列里那也不能确定这个元素是不是所要的最小元素
这里的策略就是让右指针往左移一位因为右指针初始在最右侧这样可以使下次的中指针发生变动且是往左偏如果是第一种情况首先可以确定是大序列在前小序列在后那么中指针左移一下由于两个序列都有这个元素而且原序列是单调的就说明大序列之前的元素都是这个元素小序列之后的元素也都是这个元素。右指针在小序列里中指针在大序列里调整后中指针依然在大序列里如果一直相同就会使右指针不断左移直到右指针在小序列里可能遇到第一个相异的元素就会使中指针大于右指针
如果是后一种情况中指针只可能在于小序列如果中指针在大序列那么说明左指针右指针均在大序列里则最小值只会在左端点中指针位于小序列右指针左移会使中指针到大序列就会使下一次中指针大于右指针
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923345.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!