当前位置: 首页 > news >正文

网站的空间租用费wordpress js代码插件

网站的空间租用费,wordpress js代码插件,最受关注的十大公众号,永久免费网站建商城一、问题描述二、解题思路整体思路可以借鉴归并排序(递归)的求解过程。假设数组如图所示,总过程为:(1)首先找到中间位置mid;(2)在[left,mid]区间内统计逆序对的数量排序;(3)再在[mid1,right]区间内统计逆序对的数量排序;(4)最后再一左一右统计逆序对的数…

一、问题描述

二、解题思路

整体思路

可以借鉴归并排序(递归)的求解过程。假设数组如图所示,总过程为:

(1)首先找到中间位置mid;

(2)在[left,mid]区间内统计逆序对的数量+排序;

(3)再在[mid+1,right]区间内统计逆序对的数量+排序;

(4)最后再一左一右统计逆序对的数量+排序;

(5)将三个数量累加,即为所求。

具体思路

(1)首先,考虑递归出口,如果left>=right,即区间内只有1个数或者没有数,此时逆序对的数量为0,return0;

(2)寻找中间位置,执行左区间寻找+排序、右区间寻找+排序,代码如下:

//1.寻找中间位置

int mid=left+(right-left)/2;

//2.左区间寻找+排序、右区间寻找+排序

ret+=mergeSort(nums,left,mid);

ret+=mergeSort(nums,mid+1,right);

(3)由于递归需要保证子问题一样,所以我们在一左一右统计逆序对的数量后,也进行排序处理。我们处理的总策略是寻找左边更大的数的个数,处理过程如下,此时的数组如图。当cur1<=mid且cur2<=right时进行归并处理,并进行逆序对数量统计:

<1>当nums[cur1]<=nums[cur2]时,执行tmp[i++]=nums[cur1++];

<2>当nums[cur1]>nums[cur2]时,此时[cur1,mid]区间内的数均比nums[cur2]大,所以ret+=mid-cur1+1,tmp[i++]=nums[cur2++];

(4)循环结束后,将归并排序的过程完成:

 //4.处理没有排序完的数字

        while(cur1<=mid) tmp[i++]=nums[cur1++];

        while(cur2<=right) tmp[i++]=nums[cur2++];

(5)排序完成后用排序完的辅助数组tmp覆盖原本的数组nums:

 //5.还原nums数组

        for(int i=left;i<=right;i++)

            nums[i]=tmp[i-left];

(6)最后返回ret;

三、代码实现

时间复杂度:T(n)=O(nlogn)

空间复杂度:S(n)=O(n)

class Solution {vector<int> tmp;
public:int reversePairs(vector<int>& nums) {//结合归并排序tmp.resize(nums.size());return mergeSort(nums,0,nums.size()-1);}int mergeSort(vector<int>& nums,int left,int right){//递归出口if(left>=right) return 0;int ret=0;//1.寻找中间位置int mid=left+(right-left)/2;//2.左区间寻找+排序、右区间寻找+排序ret+=mergeSort(nums,left,mid);ret+=mergeSort(nums,mid+1,right);//3.一左一右寻找+排序int cur1=left,cur2=mid+1,i=0;while(cur1<=mid&&cur2<=right){if(nums[cur1]<=nums[cur2]){tmp[i++]=nums[cur1++];}else{ret+=mid-cur1+1;tmp[i++]=nums[cur2++];}}//4.处理没有排序完的数字while(cur1<=mid) tmp[i++]=nums[cur1++];while(cur2<=right) tmp[i++]=nums[cur2++];//5.还原nums数组for(int i=left;i<=right;i++)nums[i]=tmp[i-left];//6.返回retreturn ret;}
};

http://www.dtcms.com/a/451953.html

相关文章:

  • wordpress怎么加速优化网站推广排名
  • 17年哪个网站做h5最好win2012服务器网站建设
  • 西安做网站的公司地址建服务网站需要多少钱
  • 网站开发区宿迁房价
  • 做纺织的都用什么网站别人做的网站百度网站验证
  • 在哪下载.net网站作品狮山建网站
  • 汕头市企业网站建设哪家好官方旗舰店
  • 国外网站如何搭建网页wordpress 用oss存储
  • 网站网页进口小城镇建设投稿网站
  • 专注律师微网站建设与律师微信营销6亚圣信息科技做网站怎么样
  • 在浴室里做的网站河南平台网站建设找哪家
  • 全国做网站公司前十名网站建设模板ppt
  • 东莞网站建设相关技术模拟建筑2022手机版
  • 网站关键词锚文本指向谷歌推广方式
  • 云建站优势网站 手机网站
  • 怎么为一个网站做外链网络营销策略研究论文
  • 仿快递网站源码一个网站做多少关键词
  • 辽宁鞍山网站建设烟台网站设计制作公司电话
  • 个人或主题网站建设 实验体会分类信息网站制作
  • 北京网站制作合肥做网站合伙怎么分
  • 做网站建设销售途径wordpress做付费内容
  • 用dede做网站去掉版权网站开发常用jquery插件
  • 怎么用视频做网站背景wordpress全站模板
  • 铁路建设单位网站简述商务网站建设的步骤
  • 微网站 获取手机号注册公司名字查询系统
  • 建网站龙做网站怎样设置搜索引擎
  • 餐饮加盟培训网站建设扬州建设投资集团网站
  • 做网站怎么写预算兰州传诚网络科技有限公司
  • 网站建设服务费用直播是网站怎么做
  • wordpress主机安装教程郴州优化公司