-
算法第二章实践作业
算法第二章实践作业 一、问题描述 设计一个平均时间复杂度为 O(n) 的算法,在 n 个无序整数中找出第 k 小的数。 输入格式:第一行是 n 和 k,第二行是 n 个整数。 输出格式:第 k 小的数。 输入样例: 7 3 3 1 4 1 5 9 2 输出样例: 2 二、算法描述 核心思想 该算法称 -
第二章作业
一、找第k小的数的分治算法的自然语言描述: 求第k小的数可以采用快速选择算法。首先从数组中选择一个元素作为基准值pivot,并通过划分操作调整数组,使得pivot左侧的元素均小于pivot,右侧的元素均大于pivot。具体过程中,可以使用双指针分别从数组两端向中间扫描,不断交换不满足条件的元素,直到 -
编码规范
一、为什么需要编码规范 编码规范不是束缚,而是一种“让代码可被他人读懂”的约定。Google C++ Style Guide 开篇就指出:随着代码库的膨胀,代码的可读性和可维护性远比写代码时的便利更重要。在团队协作中,规范的命名、统一的格式和恰当的注释能让新成员快速理解代码意图,减少沟通成本。代码规 -
找第k小的数的分治算法
找第k小的数的分治算法 自然语言描述:快速选择算法借鉴了快速排序的分治思想。为了在无序数组中找到第k小的元素,其主要步骤如下:选择主元:从当前数组中选择一个元素作为主元。划分:重新排列数组,将小于主元的元素放在左边,大于主元的元素放在右边,主元放置在最终排序后的正确位置。分治判断: 假设主元在划分后 -
第二章实践作业
找第k小的数的分治算法 一、算法描述 给定一个无序数组A和整数k,找出数组中第k小的元素。采用分治思想,核心是快速选择算法。 自然语言描述: 分解:从数组A中选择一个基准元素pivot。 划分:将数组重新排列,使得小于pivot的元素在左边,等于pivot的元素在中间,大于pivot的元素在右边。 -
我的第二章作业学习
一、分治算法描述(快速选择找第k小) 自然语言描述 本算法基于快速排序的划分思想,采用分治策略实现平均O(n)复杂度查找第k小数: 划分(partition):在当前数组区间[left,right]选取基准元素pivot,将区间划分成两部分:左侧所有元素≤pivot,右侧所有元素≥pivot;划分完 -
算法第二章实践作业
算法思路: 选一个基准 p,划分数组:左边 ≤ p,右边 > p。 若 p 最终位置为 i,左半部分加 p 的个数为 left = i - len + 1; 若 k == left,返回 A[i]; 若 k < left,递归左半部分找第 k 小; 若 k > left,递归右半部分找第 k - l -
算法第二章作业
一. 自然语言描述 算法遵循分治法「分解→解决→合并」的核心框架,具体步骤如下: 1.分解:在当前数组区间中选取一个基准元素(pivot),通过分区操作将数组划分为两部分:左侧所有元素 ≤ 基准,右侧所有元素 ≥ 基准,最终得到基准元素在整个数组中的确定位置 pivot_idx。 2.解决:根据基准 -
分治法学习
算法描述 分治思想:先选取基准对数组划分,将比基准小的放左边、大的放右边,得到基准的最终位置。对比基准位置与k:若基准就是第k小元素直接返回;若k在左侧,则只递归左半部分查找;若k在右侧,则递归右半部分查找,缩减k值,直到找到答案。 先将问题拆分成多个小问题,各自解答后汇总得出最后答案。 复杂度 最 -
cpp编码规范
一、文件与头部规范 文件头注释:每个.c源文件和.h头文件顶部必须包含标准文件头,标注文件名、核心功能描述、创建日期、作者与学号信息。 头文件包含规则 系统库头文件在前,自定义头文件在后,两类之间用空行分隔; 只引入代码实际用到的头文件,禁止冗余包含。 二、命名规范 变量命名 全小写字母,多单词用下 -
数据采集第一次作业
Python 定向爬虫实践作业 实验日期:2026年10月13日 本次实践包括大学排名爬取、商城商品比价和网页图片下载三个任务。每项作业按照“实验”和“心得体会”展开,给出实现思路、完整代码和实验结果。 作业① 1)大学排名爬取实验 实验要求 使用 requests 和 BeautifulSoup -
分治
找第k小数的分治算法 可以使用“快速选择(Quickselect)”算法。其基本思想是:先从数组中选取一个基准元素pivot,然后将数组划分为小于pivot、等于pivot和大于pivot的三部分。 设小于pivot的元素个数为m: 如果k小于或等于m,说明第k小的数在小于pivot的部分中,继续在 -
第二章作业
算法思想 快速选择借鉴快速排序的划分机制:选取基准,将数组分为左右两部分,得到基准的下标 pos。 pos == k-1则直接返回 pos > k-1则递归左半区间 pos < k-1则递归右半区间,调整 k 值 只递归一侧,无需合并,无需全排序。 时间复杂度 最好情况:O(n) 每次划分均衡,总工 -
分治法
一、查找第 k 小元素 1.自然语言描述 分治核心:选取一个基准元素a,把数组划分成两部分: 左边所有元素 ≤ a;右边所有元素 ≥ a。 假设划分结束后,a落在数组的第 pos 位置。 如果pos == k-1:a 就是第k小元素直接返回; 如果pos > k-1:第 k 小元素一定在左半区间递归 -
数据采集第一次作业
数据采集第一次作业 一、作业①:软科大学排名定向爬取 1. 作业代码与运行结果 1.1 代码实现 from urllib.request import urlopen, Request from bs4 import BeautifulSoup import re url = "https://ww -
数据采集第一次作业 —— 定向爬虫
数据采集与融合技术 第一次作业 姓名:姜思源 学号:102402110 我的gitee仓库:aarctic 课程:数据采集与融合技术 本次共三个小作业:①用 requests + BeautifulSoup 爬取软科中国大学排名;②用 requests + re 设计当当网"书包"商品比价爬虫;③爬 -
第二章作业
找第 k 小的数,采用分治法(快速选择算法): 从数组中随机选一个元素作为基准值 pivot。 遍历数组,把小于 pivot 的放左边,大于 pivot 的放右边,等于的放中间(或统计小于 pivot 的个数)。 设小于 pivot 的元素个数为 cnt: · 若 k == cnt + 1,则 pi -
c++编码规范
C++ 编码规范 一、命名 类名用大驼峰(MyClass),函数名用大驼峰(DoSomething()),变量名用小写加下划线(my_var),成员变量末尾加下划线(my_var_),常量加 k 前缀(kMaxSize)。 二、格式 缩进统一 4 个空格,禁止使用 Tab。每行不超过 80 字符。i -
数据采集与融合技术第一次作业
本次作业用 requests+BeautifulSoup、requests+re 爬取大学排名、电商商品价格与网页图片 -
20242319 2026-2027-1 《网络与系统攻防技术》实验二实验报告
20242319 2026-2027-1 《网络与系统攻防技术》实验二实验报告 1. 基础知识 1.1 后门与反弹 Shell 后门可以理解为攻击者或测试者在目标主机上保留的一种“再次进入系统”的通道。本次实验中的后门主要有两类表现形式:一类是通过 ncat、socat 等工具直接把目标主机的 Sh