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

如何将网站上传到万网主机本地网站搭建软件

如何将网站上传到万网主机,本地网站搭建软件,做动漫主题的网站,手机上的网站是怎么做的吗Hey#xff0c;大家好#xff01;#x1f44b; 今天我们来聊聊一个有趣的话题——如何在归并排序的基础上#xff0c;高效解决求逆序对数量的问题。如果你对算法感兴趣#xff0c;或者正在准备算法面试#xff0c;这篇文章一定会对你有所帮助#xff01;#x1f680; …Hey大家好 今天我们来聊聊一个有趣的话题——如何在归并排序的基础上高效解决求逆序对数量的问题。如果你对算法感兴趣或者正在准备算法面试这篇文章一定会对你有所帮助 题目描述 给定一个长度为 n 的整数数列请你计算数列中的逆序对的数量。 逆序对的定义如下 对于数列的第 i 个和第 j 个元素如果满足 i j 且 a[i] a[j]则其为一个逆序对否则不是。 输入格式 第一行包含整数 n表示数列的长度。 第二行包含 n 个整数表示整个数列。 输出格式 输出一个整数表示逆序对的个数。 数据范围 1 ≤ n ≤ 100000数列中的元素的取值范围 [1,10^9]。 输入样例 6 2 3 4 5 6 1输出样例 5理解何为逆序对 首先我们来理解一下什么是逆序对。简单来说逆序对就是在一个数列中前面的数比后面的数大。比如在数列 [2, 3, 4, 5, 6, 1] 中2 和 1 就是一个逆序对因为 2 1 且 2 在 1 的前面。 解题策略 ️ 1. 策略①暴力解决 算法思路 在理解了逆序对的概念之后很自然能想到可以直接使用逐个比较的策略进行求解 分别将每个元素和其后面的所有元素进行逐个比较 if 后面有比其小的元素: 逆序对数量重复直至最后一个元素 核心代码 // 暴力解决策略的核心代码 int count 0; for (int i 0; i n; i) {for (int j i 1; j n; j) {if (a[i] a[j]) {count;}} }复杂度分析 需要使用两个for循环—— O ( n 2 ) O(n^2) O(n2) 复杂度较高在一些要求较高的情况下会报超时错误 小挑战你能尝试用暴力解法解决这个问题吗试试看感受一下它的时间复杂度吧 2. 策略②运用「归并排序」的算法思想 1回顾「归并排序」算法原理 归并排序是一种经典的分治算法它的核心思想是将一个数组分成两个子数组分别对子数组进行排序然后将两个有序的子数组合并成一个有序的数组。归并排序的时间复杂度是 O ( n log ⁡ n ) O(n \log n) O(nlogn)比暴力解法高效得多。 2改动以求逆序对数量 原理分析 在归并排序的过程中当我们合并两个有序的子数组时如果左边的某个元素 a[i] 大于右边的某个元素 a[j]那么 a[i] 和 a[j] 就构成了一个逆序对。不仅如此由于左边的子数组是有序的a[i] 后面的所有元素也都大于 a[j]因此我们可以一次性计算出多个逆序对。 代码实现 #include iostreamusing namespace std;typedef long long LL; // 结果较大const int N 100010; int n; int a[N], temp[N];// 求逆序对数量 LL rev_pair(int a[], int l, int r) {if (l r)return 0;int mid l r 1;LL res rev_pair(a, l, mid) rev_pair(a, mid 1, r);int i l, j mid 1;int k 0;while (i mid j r){if (a[i] a[j])temp[k] a[i];else{temp[k] a[j];// 当a[i]a[j]时对于a[j]与[i, mid]区间内的元素可组成逆序对res mid - i 1;}}while (i mid)temp[k] a[i];while (j r)temp[k] a[j];for (int i l, j 0; i r; i, j)a[i] temp[j];return res; }int main() {cin n;for (int i 0; i n; i)cin a[i];LL res rev_pair(a, 0, n - 1);cout res endl;return 0; }复杂度分析 归并排序的时间复杂度是 O ( n log ⁡ n ) O(n \log n) O(nlogn)因此这个解法的时间复杂度也是 O ( n log ⁡ n ) O(n \log n) O(nlogn)比暴力解法高效得多。 学习建议和鼓励 多动手实践算法的学习离不开实践建议你亲自编写代码并运行感受算法的魅力。不要害怕挑战算法的学习过程中难免会遇到困难但每一次克服困难都是一次成长。多与他人交流加入一些算法学习群和志同道合的小伙伴一起讨论问题互相学习。 互动性元素 小挑战你能尝试用归并排序的思想解决其他问题吗比如求一个数组中的顺序对数量 推荐阅读如果你对归并排序还不熟悉推荐你阅读这篇关于「归并排序」的博客里面有详细的归并排序讲解。 结语 通过这篇文章我们不仅学习了如何用归并排序的思想高效解决求逆序对数量的问题还了解了暴力解法和优化解法之间的差异。希望你能从中有所收获并在算法的学习道路上越走越远 如果你有任何问题或想法欢迎在评论区留言我们一起讨论 Happy Coding!
http://www.hkea.cn/news/14335229/

相关文章:

  • 网站开发怎么挣外快qq企业邮箱登录入口
  • 河南网站制作工作室深圳公司建立网站
  • 网站前台显示数据库指定分类怎么做php开发助手
  • .net flash网站模板网站建设详细设计
  • 网站加入购物车的代码怎样在百度做网站表白
  • 怎么自己做网站挂到百度上专业微网站建设
  • 医疗手机网站建设手机搭建网站
  • 建站快车的应用场景aso是什么意思
  • 南靖企业网站建设公司做网站好赚钱
  • 个人网站制作流程恒彩装饰和圣都哪个好
  • 做初中物理题目的网站虚拟主机装2个wordpress
  • 灵璧哪有做网站的淘宝联盟推广网站怎么做
  • 关于做外汇现货的网站建设一个网站成本多少
  • 网站程序找人做还是自己做wordpress用户角色
  • WordPress 站点图标链接网站开发慕枫
  • 织梦本地做的网站内网访问不网站建设谈单思路
  • 网站开发市场人员的招聘烟台网站制作哪家好
  • 网站建设和微信小程序网站的建设需要多少钱
  • 做影视网站代理犯法吗免费防红短链接生成
  • 网站建设和维护工作内容wordpress漏洞扫描器
  • 自己做网站的好处在wordpress主页显示商品
  • 从零开始做网站数据库建设银行电子银行网站
  • 网站建设对称对比型做英文网站建设
  • 笑话网站程序济南网站seo
  • 网站建设去哪里想设计一个公司的网站
  • 如何做视频门户网站手机网站备案密码找回的方法
  • 公司网站注意事项网页制作基础教程黄洪杰
  • 小程序就是做网站凡科网站模块
  • 做网站导航按钮怎么猛深圳cms建站系统
  • 网站资料要提供哪些电商网站搜索引擎怎么做