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

acwing算法基础之基础算法--求逆序对的数目

目录

  • 1 知识点
  • 2 模板

1 知识点

合并两个有序数组,对于有序数组[l,mid]和有序数组[mid+1,r],将i指向前者,将j指向后者。在将每一个j插入最终有序数组中时,计算 s j = m i d − i + 1 s_j=mid-i+1 sj=midi+1,此为(x,nums[j])的逆序对数目。

2 模板

//数组nums,返回数组中逆序对的数目
long long merge_sort(vector<int> &nums, int l, int r) {if (l >= r) {return 0;}long long res = 0;int mid = l + r >> 1;res = merge_sort(nums, l, mid) + merge_sort(nums, mid + 1, r);int i = l, j = mid + 1;vector<int> t;while (i <= mid && j <= r) {if (nums[i] <= nums[j]) {t.emplace_back(nums[i++]);} else {t.emplace_back(nums[j++]);res += mid - i + 1;}}while (i <= mid) {t.emplace_back(nums[i++]);}while (j <= r) {t.emplace_back(nums[j++]);}for (int i = l, j = 0; i <= r; ++i, ++j) {nums[i] = t[j];}return res;
}
http://www.lryc.cn/news/189885.html

相关文章:

  • uni-app 实现考勤打卡功能
  • Jenkins发布失败记录
  • 【算法|双指针系列No.6】leetcode LCR 179. 查找总价格为目标值的两个商品
  • python flask接口字段存在性校验函数(http接口字段校验)(返回提示缺少的字段信息)validate_fields()
  • Linux文件-内存映射mmap
  • linux 查看当前正在运行的端口和监听的端口的工具及命令
  • 保护互联网数据安全:关键方法与最佳实践
  • 分布式数据库HBase(林子雨慕课课程)
  • 矩阵求导的本质与分子布局、分母布局的本质
  • 【广州华锐互动】VR建筑施工事故体验:提高工人安全意识和责任感
  • HSRP热备份路由器协议的解析和配置
  • kotlin实现ArrayDeque
  • java时间格式化
  • ArduPilot开源飞控之AP_Baro_SITL
  • 基于Java的病人跟踪治疗管理系统设计与实现(源码+lw+部署文档+讲解等)
  • RCD吸收电路的工作原理及参数计算方法详解
  • leetcode做题笔记169. 多数元素
  • FATFS f_printf 如何支持写入浮点数据。
  • postman忘记密码提交没响应
  • 初学vue,想自己找个中长期小型项目练练手,应该做什么?
  • 【牛客面试必刷TOP101】Day11.BM63 跳台阶和 BM67 不同路径的数目(一)
  • [NOIP 2022] 建造军营 题解
  • 射频识别技术(RFID)在智能制造模具管理中的应用
  • 奖品定制经营商城小程序的作用是什么
  • 深度学习常用脚本总结
  • hive数据表创建
  • 查看本机Arp缓存,以及清除arp缓存
  • Unity MRTK Hololens2眼动交互
  • 接口自动化测试 —— 协议、请求流程
  • JDK安装详细教程