零回复 | 有回复 | 作业 | 其他 | 所有
  • 算法第二章实践作业

    (1)分治法:找第 k 小的数 自然语言描述: 1.选取一个基准元素pivot,调用划分函数把数组分为两部分:左区间全部≤pivot,右区间全部≥pivot,得到基准所在下标。 2.统计左区间元素数量cnt: ·如果cnt == k,基准就是第 k 小元素,直接返回; ·如果k < cnt,说明第
    计算机2504(广东外语外贸大学)  赐予秋  2026-10-13 21:34   0   6
  • 第二章找第k小分治法作业

    分治法求无序数组中的第 k 小元素 一、问题描述 给定一个无序整数数组 a 和一个整数 k,要求找出数组中按从小到大排序后的第 k 个元素。 例如,数组为: text 7 2 9 4 1 6 将它升序排列后是: text 1 2 4 6 7 9 因此,第 3 小的元素是 4。 最直接的方法是先对数组
    计算机2504(广东外语外贸大学)  梁弘皞  2026-10-13 21:18   0   2
  • 第二章实践作业

    一、分治算法(快速选择) 选基准pivot划分数组,小于等于pivot放左边,大于放右边。判断基准在当前区间的位次: 1.位次=k:直接返回pivot; 2.位次>k:递归左区间找第k小; 3.位次<k:递归右区间,找第(k - 位次)小。 二、时间复杂度 最好:O(n),每次划分均匀,总工作量是n
    计算机2502(广东外语外贸大学)  (=  2026-10-13 21:16   0   5
  • 算法第二章实践作业

    找第 k 小数分治算法 采用快速选择思路。选取数组一个基准值,将数组划分,左侧元素小于等于基准,右侧大于基准。得到基准在当前区间的次序。若次序等于 k,基准就是答案;若 k 更小,递归在左区间查找;k 更大则在右区间查找,减去左侧元素个数。 复杂度 最好时间复杂度 O (n),每次划分均匀,每次只处
    计算机2504(广东外语外贸大学)  cengjingqijiexiaohua  2026-10-13 21:06   0   2
  • 20242411 2026-2027-1 《网络与系统攻防技术》实验二实验报告

    20242411 2026-2027-1 《网络与系统攻防技术》实验二实验报告一、基础知识1.1 后门与反向连接后门是绕过正常认证或交互流程、为后续访问提供隐蔽通道的程序或机制。后门可能通过恶意软件、钓鱼、被篡改的软件包、弱口令服务或漏洞利用进入系统。反向连接模式由目标主机主动连接控制端,通常可以减
  • 分治法求第k小元素

    分治法实战:寻找第 k 小的数 —— 算法描述、复杂度分析与分治思想漫谈 前言 "在一个无序数组中找出第 k 小的数"是算法课和面试中的经典问题。最直观的想法是先排序再取下标,时间复杂度为 $O(n \log n)$。但借助分治法,我们可以把平均时间复杂度降到 $O(n)$——这就是本文的主角 快速
    计算机2504(广东外语外贸大学)  Heassw  2026-10-13 20:46   0   6
  • C++编码规范实践指南

    C++ 编码规范:写出可维护、可协作的现代 C++ 代码 前言 C++ 是一门强大而复杂的语言,它给予开发者极大的自由,但自由往往意味着风险:同一个功能可以有一万种写法,其中九千种会给后来者(包括三个月后的自己)挖坑。编码规范的意义不在于束缚,而在于降低沟通成本、减少低级错误、让团队协作成为可能。
    计算机2504(广东外语外贸大学)  Heassw  2026-10-13 20:45   0   6
  • C++代码规范

    基本原则 统一使用项目规定的 C++ 标准,建议 C++17 或更高版本。 开启编译器警告并及时处理,代码优先保证清晰、可维护。 命名 类型、类、枚举使用 PascalCase;变量、函数、命名空间使用 snake_case。 成员变量使用尾部下划线,如 count_;常量使用 kPascalCas
    计算机2504(广东外语外贸大学)  言语123  2026-10-13 20:43   0   4
  • 算法第二章实践作业

    (1)请用自然语言或伪代码描述找第k小的数的分治算法 前置:定义一个无序数组a[1…n],其中1<=k<=n; 在当前区间l到r选一个基准元素x; 对区间划分:把<x的元素放左边,>x的元素放右边,通过partition()函数实现,实现分治两侧; 算出此时x在当前区间中升序的排名为m,确定为该数组
    计算机2502(广东外语外贸大学)  星火燎原191  2026-10-13 20:29   0   4
  • 算法第二章实践作业——第 k 小元素的分治算法

    算法第二章实践作业——第 k 小元素的分治算法 一、请用自然语言或伪代码描述找第 k 小的数的分治算法 1. 问题描述 给定一个包含 n 个整数的无序数组,以及一个整数 k(1 ≤ k ≤ n),要求找出数组中第 k 小的元素。 例如: 数组 A = [7, 2, 9, 4, 1, 6, 3],k
    计算机2504(广东外语外贸大学)  龚培予  2026-10-13 20:26   0   4
  • 算法第二章实践作业

    找第 k 小数的分治算法通常称为快速选择,本质是快速排序划分思想的“减治”版本。 核心步骤: 在数组 A[l..r] 中选一个枢轴 pivot; 进行划分,使左边元素 ≤ pivot,右边元素 ≥ pivot; 设枢轴最终位置为 p,左半部分加枢轴共有 leftSize = p - l + 1 个元
    计算机2502(广东外语外贸大学)  罗嘉惠  2026-10-13 20:22   0   2
  • 找第k小的数——分治算法的一次实践与思考

    找第k小的数——分治算法的一次实践与思考 一、问题背景 这周算法课讲分治法,老师布置了这道题:用分治的思想找出一组数中第k小的数。乍一看好像不难,排个序取第k个就行了,但那样是O(nlogn),而分治可以做到平均O(n)。这个差距还是挺吸引人的,所以我想认真梳理一下。 二、算法描述 找第k小的数,分
    计算机2504(广东外语外贸大学)  与青山奏江河  2026-10-13 20:19   0   4
  • 第二章作业

    快速选择算法 从当前子数组选定一个基准元素,完成分区操作,使得基准左侧元素均小于等于基准,右侧元素均大于等于基准,确定基准的位置。判断基准在当前子区间的次序:若基准正好是区间内第 k 小元素,直接返回;若目标 k 小于该次序,则在左区间递归搜索第 k 小;若目标 k 大于该次序,则丢弃左区间,在右区
    计算机2502(广东外语外贸大学)  端木落月mc  2026-10-13 20:14   0   4
  • 算法第二章实践作业

    1.用自然语言描述找第k小的数的分治算法: 从一堆数里随便挑一个数当“基准”。然后把所有数分成三堆:比基准小的、和基准一样大的、比基准大的。数一数“比基准小”的那堆有几个数, 如果k不超过这堆的个数,说明第k小的数就在“小的那堆”里,那就只去那堆继续找第k小。 如果k比这堆多,但没超过“小的个数 +
    计算机2502(广东外语外贸大学)  郑海滨  2026-10-13 20:06   0   4
  • 算法第二章实践作业

    算法第二章实践作业 一、问题描述 设计一个平均时间复杂度为 O(n) 的算法,在 n 个无序整数中找出第 k 小的数。 输入格式:第一行是 n 和 k,第二行是 n 个整数。 输出格式:第 k 小的数。 输入样例: 7 3 3 1 4 1 5 9 2 输出样例: 2 二、算法描述 核心思想 该算法称
    计算机2502(广东外语外贸大学)  小白fish  2026-10-13 19:44   0   5
  • 第二章作业

    一、找第k小的数的分治算法的自然语言描述: 求第k小的数可以采用快速选择算法。首先从数组中选择一个元素作为基准值pivot,并通过划分操作调整数组,使得pivot左侧的元素均小于pivot,右侧的元素均大于pivot。具体过程中,可以使用双指针分别从数组两端向中间扫描,不断交换不满足条件的元素,直到
    计算机2502(广东外语外贸大学)  浮云qqq  2026-10-13 19:44   0   9
  • 编码规范

    一、为什么需要编码规范 编码规范不是束缚,而是一种“让代码可被他人读懂”的约定。Google C++ Style Guide 开篇就指出:随着代码库的膨胀,代码的可读性和可维护性远比写代码时的便利更重要。在团队协作中,规范的命名、统一的格式和恰当的注释能让新成员快速理解代码意图,减少沟通成本。代码规
    计算机2502(广东外语外贸大学)  TheWorld_23  2026-10-13 19:42   0   5
  • 找第k小的数的分治算法

    找第k小的数的分治算法 自然语言描述:快速选择算法借鉴了快速排序的分治思想。为了在无序数组中找到第k小的元素,其主要步骤如下:选择主元:从当前数组中选择一个元素作为主元。划分:重新排列数组,将小于主元的元素放在左边,大于主元的元素放在右边,主元放置在最终排序后的正确位置。分治判断: 假设主元在划分后
    计算机2504(广东外语外贸大学)  M1LK  2026-10-13 19:42   0   6
  • 第二章实践作业

    找第k小的数的分治算法 一、算法描述 给定一个无序数组A和整数k,找出数组中第k小的元素。采用分治思想,核心是快速选择算法。 自然语言描述: 分解:从数组A中选择一个基准元素pivot。 划分:将数组重新排列,使得小于pivot的元素在左边,等于pivot的元素在中间,大于pivot的元素在右边。
    计算机2504(广东外语外贸大学)  丰晓航  2026-10-13 19:41   0   3
  • 我的第二章作业学习

    一、分治算法描述(快速选择找第k小) 自然语言描述 本算法基于快速排序的划分思想,采用分治策略实现平均O(n)复杂度查找第k小数: 划分(partition):在当前数组区间[left,right]选取基准元素pivot,将区间划分成两部分:左侧所有元素≤pivot,右侧所有元素≥pivot;划分完
    计算机2504(广东外语外贸大学)  rui-ni  2026-10-13 19:38   0   3