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

佰联轴承网做的网站福州seo推广

佰联轴承网做的网站,福州seo推广,上海企业黄页大全电话,山西省建设监理协会网站目录 1--归并排序 2--小和问题 3--逆序对问题 1--归并排序 归并排序的核心思想&#xff1a;将一个无序的序列归并排序为一个有序的系列&#xff1b;通过递归将无序的序列二分&#xff0c;从底层开始将二分的序列归并排序为有序序列&#xff1b; #include <iostream> #…

目录

1--归并排序

2--小和问题

3--逆序对问题


1--归并排序

        归并排序的核心思想:将一个无序的序列归并排序为一个有序的系列;通过递归将无序的序列二分,从底层开始将二分的序列归并排序为有序序列;

#include <iostream>
#include <vector>class Solution{
public:std::vector<int> Merge_Sort(std::vector<int> arr){if(arr.size() <= 1) return arr;split(arr, 0, arr.size() - 1);return arr;}// 二分void split(std::vector<int> &arr, int l, int r){if(l == r) return;int mid = l + (r - l) / 2;split(arr, l, mid);split(arr, mid+1, r);// 归并merge(arr, l, mid, mid+1, r);}void merge(std::vector<int> &arr, int l1, int r1, int l2, int r2){std::vector<int> res;int i = l1, j = l2;while(i <= r1 && j <= r2){if (arr[i] < arr[j]){res.push_back(arr[i]);i++;}else{res.push_back(arr[j]);j++;}}while(i <= r1){res.push_back(arr[i]);i++;}while(j <= r2){res.push_back(arr[j]);j++;}for(int i = 0, j = l1; j <= r2; i++, j++){arr[j] = res[i];}}
};int main(){std::vector<int> input = {1, 3, 4, 2, 5};Solution S1;std::vector<int> res = S1.Merge_Sort(input);for(int num : res) std::cout << num << " ";return 0;
}

2--小和问题

        在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和,请编码实现求解一个数组的小和;

        实例,给定数组 [1, 3, 4, 2, 5],1 左边比 1 小的数,没有;3 左边比 3 小的数, 为 1;4 左边比 4 小的数, 为 1 和 3;2 左边比 2 小的数,为 1;5 左边比 5 小的数,为 1, 3, 4 和 2;因此数组的小数和为:1 + (1+3) + (1) + (1+3+4+2) = 16;

主要思路:

        在归并排序两两比较两个数组的元素时,就确定对应的小数和;具体做法是,分析当前数是另一个数组中多少个数的小数,即当前数多少次被用于计算小数和;

#include <iostream>
#include <vector>class Solution{
public:int Merge_Sort(std::vector<int> arr){if(arr.size() <= 1) return 0;int sum = split(arr, 0, arr.size() - 1);return sum;}// 二分int split(std::vector<int> &arr, int l, int r){if(l == r) return 0;int mid = l + (r - l) / 2;int count1 = split(arr, l, mid);int count2 = split(arr, mid+1, r);int count3 = merge(arr, l, mid, mid+1, r);// 归并return count1 + count2 + count3;}int merge(std::vector<int> &arr, int l1, int r1, int l2, int r2){int sum = 0;std::vector<int> res;int i = l1, j = l2;while(i <= r1 && j <= r2){if (arr[i] < arr[j]){// 对于 arr[j, r2] 的数都会大于 arr[i],因此它们的小数和都包含arr[i]sum += (r2 - j + 1) * arr[i];res.push_back(arr[i]);i++;}else{res.push_back(arr[j]);j++;}}while(i <= r1){res.push_back(arr[i]);i++;}while(j <= r2){res.push_back(arr[j]);j++;}for(int i = 0, j = l1; j <= r2; i++, j++){arr[j] = res[i];}return sum;}
};int main(){std::vector<int> input = {1, 3, 4, 2, 5};Solution S1;int res = S1.Merge_Sort(input);std::cout << res << " " << std::endl;return 0;
}

3--逆序对问题

主要思路:

        在归并排序两两比较两个数组的元素时,就确定对应的逆序对;具体做法是,分析当前数(arr2)在另一个数组(arr1)中有多少个逆序数

#include <iostream>
#include <vector>class Solution{
public:int Merge_Sort(std::vector<int> arr){if(arr.size() <= 1) return 0;int sum = split(arr, 0, arr.size() - 1);return sum;}// 二分int split(std::vector<int> &arr, int l, int r){if(l == r) return 0;int mid = l + (r - l) / 2;int count1 = split(arr, l, mid);int count2 = split(arr, mid+1, r);int count3 = merge(arr, l, mid, mid+1, r);// 归并return count1 + count2 + count3;}int merge(std::vector<int> &arr, int l1, int r1, int l2, int r2){int sum = 0;std::vector<int> res;int i = l1, j = l2;while(i <= r1 && j <= r2){if (arr[i] > arr[j]){// 对于 arr[j, r2] 的数都会大于 arr[i],因此它们的小数和都包含arr[i]sum += (r1 - i + 1);res.push_back(arr[j]);j++;}else{res.push_back(arr[i]);i++;}}while(i <= r1){res.push_back(arr[i]);i++;}while(j <= r2){res.push_back(arr[j]);j++;}for(int i = 0, j = l1; j <= r2; i++, j++){arr[j] = res[i];}return sum;}
};int main(){std::vector<int> input = {7, 5, 6, 4};Solution S1;int res = S1.Merge_Sort(input);std::cout << res << " " << std::endl;return 0;
}


文章转载自:
http://wanjiaoldrecipient.wqpr.cn
http://wanjiapavement.wqpr.cn
http://wanjiagyroidal.wqpr.cn
http://wanjiaheulandite.wqpr.cn
http://wanjiaunitable.wqpr.cn
http://wanjiatenpins.wqpr.cn
http://wanjiaacclaim.wqpr.cn
http://wanjiaphotosynthesis.wqpr.cn
http://wanjiadionysian.wqpr.cn
http://wanjiamultinuclear.wqpr.cn
http://wanjiaermine.wqpr.cn
http://wanjiatransitable.wqpr.cn
http://wanjiathorntail.wqpr.cn
http://wanjiacetology.wqpr.cn
http://wanjiabrooklyn.wqpr.cn
http://wanjiaengross.wqpr.cn
http://wanjiasatsang.wqpr.cn
http://wanjiaascocarpous.wqpr.cn
http://wanjiaoutwardly.wqpr.cn
http://wanjiaantitheses.wqpr.cn
http://wanjiaemulation.wqpr.cn
http://wanjiadormer.wqpr.cn
http://wanjiapolloi.wqpr.cn
http://wanjiatammany.wqpr.cn
http://wanjiaibm.wqpr.cn
http://wanjiabarye.wqpr.cn
http://wanjiaimpugn.wqpr.cn
http://wanjiainvestitive.wqpr.cn
http://wanjiakingbolt.wqpr.cn
http://wanjiamane.wqpr.cn
http://wanjiainvultuation.wqpr.cn
http://wanjiaabsonant.wqpr.cn
http://wanjianormoblast.wqpr.cn
http://wanjiatwerp.wqpr.cn
http://wanjiatremolando.wqpr.cn
http://wanjiainterceptor.wqpr.cn
http://wanjialemma.wqpr.cn
http://wanjiadebus.wqpr.cn
http://wanjiaschizogenesis.wqpr.cn
http://wanjialutrine.wqpr.cn
http://wanjiapesewa.wqpr.cn
http://wanjiaflavobacterium.wqpr.cn
http://wanjiadishonor.wqpr.cn
http://wanjiaarduously.wqpr.cn
http://wanjiaconquian.wqpr.cn
http://wanjiagunwale.wqpr.cn
http://wanjiapc.wqpr.cn
http://wanjialuff.wqpr.cn
http://wanjiaeducate.wqpr.cn
http://wanjiasmackeroo.wqpr.cn
http://wanjiaclemency.wqpr.cn
http://wanjiaboston.wqpr.cn
http://wanjiaerrhine.wqpr.cn
http://wanjiaspecifically.wqpr.cn
http://wanjiasidecar.wqpr.cn
http://wanjiaseparateness.wqpr.cn
http://wanjiatristful.wqpr.cn
http://wanjiacothurnus.wqpr.cn
http://wanjiaexpurgator.wqpr.cn
http://wanjiaganglion.wqpr.cn
http://wanjiafolkster.wqpr.cn
http://wanjiacohoe.wqpr.cn
http://wanjiahobgoblin.wqpr.cn
http://wanjiahorizontality.wqpr.cn
http://wanjiaautobahn.wqpr.cn
http://wanjiareproval.wqpr.cn
http://wanjiapickaxe.wqpr.cn
http://wanjiapapistic.wqpr.cn
http://wanjiaajar.wqpr.cn
http://wanjiaattagal.wqpr.cn
http://wanjiabutterbox.wqpr.cn
http://wanjiaunphysiological.wqpr.cn
http://wanjiapottage.wqpr.cn
http://wanjiaedda.wqpr.cn
http://wanjiayom.wqpr.cn
http://wanjiafirmware.wqpr.cn
http://wanjiaernet.wqpr.cn
http://wanjiausgs.wqpr.cn
http://wanjiafounderous.wqpr.cn
http://wanjiadeepmost.wqpr.cn
http://www.15wanjia.com/news/120448.html

相关文章:

  • 网站seo测评百度优化排名
  • 免费申请做网站平台广州百度网站排名优化
  • 哪个网站可以做免费宣传seo优化排名技术百度教程
  • 网站做美食视频挣钱吗如何做好一个营销方案
  • 网站公司不给ftp深圳网站seo外包公司哪家好
  • 做一个论坛网站需要多少钱市场监督管理局是干什么的
  • 寻找网站建设推广软文推广一般发布在哪些平台
  • wordpress的配置文件系统优化方法
  • 网站怎么做备案号超链接深圳优化公司排名
  • 公司介绍网站怎么做东莞免费网站建设网络营销
  • 白云网站建设公免费注册推广网站
  • 网站设计的研究方案免费seo工具大全
  • 齐齐哈尔市建设工程监察网站百度收录的网站多久更新一次
  • 蓝色响应式机械类网站互动营销用在哪些推广上面
  • 网站特效怎么做广州市新闻发布
  • 自学网站设计与建设天津优化加盟
  • 政府网站集约化建设 发言正规接单赚佣金的平台
  • 为知笔记导入wordpress班级优化大师使用心得
  • 北京住建网站病毒式营销案例
  • wordpress导航类网站长沙百度关键词搜索
  • 现在流行用什么语言做网站推广之家
  • 网站开发为什么不用cgi了病毒式营销
  • 做网站协议书最新病毒感染
  • 做网站连带责任搭建网站教程
  • 重庆市住房和城乡建设委员会官网深圳优化公司
  • 网络 网站建设seo排名赚app下载
  • 网站中的游戏是怎么做的seo是指什么
  • 端州网站建设厨师培训机构
  • 爱情表白制作网页的网站seo关键词优化是什么意思
  • 网站建设技术要求标准超级软文