-
高级语言程序设计课程第六次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14585 学号:102500415 姓名:林帅前 1. 2. 3. -
高级语言程序设计课程第六次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx?filter=homework 这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14585 学号:102500336 姓 -
第三次算法作业
递归方程式 dp[i][j] = triangle[i][j] + max(dp[i-1][j-1], dp[i-1][j]) 边界条件 dp[0][0] = triangle[0][0] // 顶点 // 第一列只能从正上方到达 for i from 1 to n-1: dp[i][0] = tr -
算法第三次作业
一、数字三角形的动态规划分析 1.1 递归方程式、定义及边界条件 dp[i][j]:从数字三角形顶部(1行1列)到i行j列时的最大路径和。 递归方程式:每一步只能从上方或左上方到达当前位置(从下往上分析时),因此:dp[i][j] = max(dp[i-1][j-1], dp[i-1][j]) + -
算法第三次作业
实践报告 1.1 递归方程式、定义与边界条件 定义:设 dp[i][j]表示从第 i行第 j列元素到三角形底部的最大路径和。 递归方程式: dp[i][j]=triangle[i][j]+max(dp[i+1][j],dp[i+1][j+1]) 边界条件:当 i=n−1时,dp[n−1][j]=tr -
算法第二章实践作业
1.用自然语言描述找第k小的数的分治算法:问题:给定一个数组 A 和一个整数 k(1 ≤ k ≤ n),找出数组中第 k 小的元素。步骤:(1)选择主元:从数组 A 中随机或确定性地选取一个元素作为 pivot。(2)分区:将数组重新排列,使得所有小于 pivot 的元素都在其左边,所有大于 piv -
实验2
实验2 实验任务一 : 代码组织: T.h 内容:类T的声明、友元函数声明 T.cpp 内容:类T的实现、友元函数实现 task1.cpp 内容:测试模块、main函数 T.h: #include <string> // 类T: 声明 class T { // 对象属性、方法 public: T(i -
实验二
任务一 #pragma once #include <string> // 类T: 声明 class T { // 对象属性、方法 public: T(int x = 0, int y = 0); // 普通构造函数 T(const T &t); // 复制构造函数 T(T &&t); // 移动构 -
work3
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/13574 学号:102500331 姓名:余武 一.书本第4章4.8 -
实验2
一.实验任务1 1.问题1 错误原因: 在task1.cpp的main函数中调用 func() 时,编译器需要看到函数的声明,如果去掉36行的语句,编译器无法找到 func() 的声明,导致错误 2.问题2 T(int x = 0, int y = 0) 功能:初始化对象,提供默认参数 调用时机:创 -
第二次作业
1. 算法描述:选基准分区,左≤基准、右>基准,看基准位置是否为第k小,否则递归对应子数组。 2. 时间复杂度:最好O(n)(基准每次为中位数),最坏O(n²)(基准每次为最值)。 3. 分治法体会:核心是拆分独立小问题,效率关键在“分”的均匀性,体现化繁为简,但需设计拆分逻辑与终止条件。 -
实验三
内容1 #include<stdio.h> char score_to_grade(int score); int main(){ int score; char grade; while(scanf("%d",&score)!=EOF){ grade = score_to_grade(score) -
实验3
实验任务1 #include <stdio.h> char score_to_grade(int score); int main() { int score; char grade; while (scanf_s("%d", &score) != EOF) { grade = score_to_g -
第二次算法实践作业
输入:数组A,查找范围[left, right],目标排名k 划分阶段: 选择A[left]作为基准元素pivot 对A[left...right]进行划分,使得: 左边所有元素 ≤ pivot 右边所有元素 ≥ pivot 返回基准元素的最终位置pos 计算排名: 计算基准元素在当前子数组中的排名 -
第二次作业
1、首先得选一个 “基准数”(贪方便的话就选第一个),然后把数组分成两部分:比基准数小的数放左边,比基准数大的放右边,基准数自己则在中间 “落位”。接下来就看我们要找的 k,和基准数的排名(m+1)比谁大:如果 k 正好等于 m+1,那基准数就是我们要找的第 k 小数,直接返回就行;如果 k 比 m -
算法第二章作业
1.用伪代码描述找第k小的数的分治算法 function selectKthSmallest(arr, k): if arr 为空: return 错误 pivot = 从 arr 中随机选择一个元素 left = [x for x in arr if x < pivot] middle = [x -
算法第二章实践作业
1.找第k小的数的分治算法描述(自然语言): 函数 'partition': 选择数组的最后一个元素 'a[right]' 作为基准值 'x' 。 初始化一个指针 'i' ,指向 'left - 1' 。 遍历从 'left'到 'right - 1' 的元素 'a[j]': 如果 'a[j]' 小 -
第二周算法设计作业
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 < -
高级语言程序设计课程第三次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/13574 学号:102400120 姓名:林严泽 编写并运行书本第4 -
算法第二章实践作业
1.寻找第k小的数不需要排序,只需要在这个数列中找到有哪个数有k-1个数比它小。运用快速排序的分区思想,从数组中选择一个元素作为枢轴,将所有小于枢轴的数都放在其左侧,所有大于枢轴的数都放在其右侧。若该枢纽的索引为k-1,则刚好为第k小的数。若该枢纽的索引小于k-1,则从枢纽的右边(x+1, righ