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

第二周算法设计作业

1.#include
using namespace std;

int partition(int a[], int left, int right) {
int pivot = a[left];
int i = left, j = right;
while (i < j) {
while (i < j && a[j] >= pivot) j--;
a[i] = a[j];
while (i < j && a[i] <= pivot) i++;
a[j] = a[i];
}
a[i] = pivot;
return i;
}

int find(int a[], int left, int right, int k) {
int p = partition(a, left, right);
if (p + 1 == k) return a[p];
if (p + 1 > k) return find(a, left, p - 1, k);
else return find(a, p + 1, right, k);
}

int main() {
int n, k;
cin >> n >> k;
int a[10000];
for (int i = 0; i < n; i++) cin >> a[i];
cout << find(a, 0, n - 1, k) << endl;
return 0;
}
对于这段代码进行解释的话,首先创建一个partition函数,声明一个pivot基准数(数组最左边的数),声明最左最右两个指针用来和基准数进行比较,小于基准数的统统放左边,大于它的放右边,随后返回基准数所在的排位;随后创建一个find函数,声明p用来记录基准数所在排位,与目标排位k进行比较,若正好等于k,返回其值,若大于k则去基准数的左边进行递归寻找,若小于k则去基准数的右边进行寻找,返回其值;最后只需按照需求输入n,k,再使用find函数,即可找到第k小的数。

2.最好时间复杂度为O(n)
最坏时间复杂度为O(n方)

3.通过本章的学习我认为分治法的价值在于其 “拆解 - 求解 - 整合” 的逻辑闭环,它通过降低问题规模提升效率,通过递归简化实现难度,但也受限于拆分策略与合并成本。学习分治法不仅是掌握一种算法技巧,更重要的是培养 “化繁为简” 的思维:面对复杂问题时,先思考 “如何拆分”“如何合并”,再结合问题特性优化细节。例如,在大规模数据处理中,分治法的思想延伸为 “分而治之” 的分布式计算(如 MapReduce):将数据拆分到多个节点并行处理,再汇总结果;快速选择算法中,通过partition操作将 “找第 k 小元素” 分解为 “在左半部分找” 或 “在右半部分找”,本质是用划分缩小问题规模,且无需合并子问题(因每次划分已直接定位目标范围);而归并排序则更完整地体现了三步曲:分解为两个子数组,递归排序子数组,最后合并两个有序子数组得到原数组的排序结果。

http://www.jsqmd.com/news/28590/

相关文章:

  • [carplay] MFI iAP2在bluez中的实现,实现carplay蓝牙握手 - 指南
  • 全球前十轮胎品牌推荐:专业TOP10精选指南
  • 全球前十轮胎品牌:权威排名最新解析
  • 机器学习决策树与大模型的思维树 - 详解
  • Windows 安全分割利器:strtok_s () 详解 - 详解
  • 软考十四
  • 手撕深度学习之CUDA矩阵乘法(上篇):从朴素实现到40倍性能提升的优化之旅
  • 6 大企业级无代码低代码平台 RBAC 权限体系深度对比
  • 大模型性能测试
  • 软考十三
  • 实用指南:【OpenCV】图像处理实战:边界填充与阈值详解
  • music-manage
  • 百人互联网企业OKR推行与考核适用建议
  • 部署常用命令
  • 解决GRPO优势归因错误,Chunk-GRPO让文生图模型更懂节奏
  • 2025 年 10 月虎头鲨/沙塘鳢/呆子鱼/虾虎鱼养殖厂家推荐排行榜,鱼苗批发,成鱼价格,中华河川沙鳢,土憨巴塘鳢专业养殖公司精选!
  • 2025 年 11 月人造草坪足球场厂家最新推荐,产能、专利、环保三维数据透视!
  • SpiritConfigTool.jar 做什么的
  • agent框架
  • 长句分析全攻略
  • MySQL 慢查询日志slow query log - 指南
  • 2025 年 11 月离心喷雾干燥机,振动流化床干燥机,带式干燥机厂家最新推荐,品牌深度解析采购无忧之选!
  • unity技巧备忘
  • 前端开发技术栈
  • SOA、ESB、微服务、分布式概念及专业名词阐述
  • unity技巧
  • 项目2:图书管理系统(数据库入门)
  • CF2153B Bitwise Reversion | 数学 | 模拟
  • DRL-QLearning与DQN
  • 2025 年 11 月真空耙式干燥机,高效沸腾干燥机,盘式干燥机厂家最新推荐,高性能,稳定性强的行业优选