当前位置: 首页 > 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.gsyq.cn/news/37034.html

相关文章:

  • 精美GitHub个人主页模板大全 - 打造你的专属开发者名片
  • music-manage
  • agent框架
  • CSP-J2025 题解
  • 长句分析全攻略
  • CSP-S2025
  • 2025 年 11 月离心喷雾干燥机,振动流化床干燥机,带式干燥机厂家最新推荐,品牌深度解析采购无忧之选!
  • unity技巧备忘
  • SOA、ESB、微服务、分布式概念及专业名词阐述
  • unity技巧
  • 项目2:图书管理系统(数据库入门)
  • CF2153B Bitwise Reversion | 数学 | 模拟
  • 2025 年 11 月双锥回转真空干燥机,离心喷雾干燥机,带式干燥机厂家最新推荐,专业制造与品牌保障口碑之选
  • DRL-时序差分学习
  • 高级语言程序设计第3次作业
  • C++多线程相关应用
  • CSP-J 2025 复赛解析
  • 加速 Docker 镜像下载的神器:KSpeeder 上手体验
  • 用 CSS Grid 实现高效布局的 3 个实战技巧
  • Spring Web MVC入门 - 指南
  • 图神经网络(GNN)
  • 深入解析:MySQL 配置管理与日志系统完全指南:从基础到高级优化
  • OpenAPI 3 所有常用注解的实际用法
  • Windows电脑软件安装流程 2025年11月1日
  • 2025 年 11 月酒店加盟公司最新推荐,品牌实力与运营保障深度透视
  • Java学习之旅第一季-25:一维数组 - 教程
  • C# 中的顺序存储与链式存储详解
  • flutter专栏--深入了解widget原理 - 教程
  • 2025 年 11 月酒店加盟公司最新推荐,技术实力与市场口碑深度解析
  • 2025 年 11 月酒店加盟公司最新推荐,聚焦跨平台能力与售后体系的实用指南