![](https://img-blog.csdnimg.cn/2020111519541748.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 88
记录算法相关博文,不限编程语言。
bluebonnet27
一个苦逼的大三程序猿,向往自由开放美好的互联网世界,觉得写代码应该是一件有艺术的事,所以正在因为枯燥的代码工作尝试转行。
展开
-
【C++】一个有意思的C++语法:从左值开始
最近学C++的时候,发现一个很有意思的语法,也就是左值和std:move原创 2023-07-25 23:11:01 · 58 阅读 · 0 评论 -
【TDD】一道简单的算法题
本周是一道简单的算法题,计算利润。我计划使用TDD的原则开发,并且换用几种不同的方法解题。如果你没看过上一期关于TDD和gtest的文章,我推荐你去看一下。原创 2022-11-06 20:44:06 · 147 阅读 · 0 评论 -
实验四:动态规划算法与回溯法
实验四:动态规划算法与回溯法用动态规划算法设计实现0-1背包问题,用回溯法设计实现0-1背包问题,并且用不同数据量进行实验对比分析,要求分析算法的时间复杂性并且提交相关代码等文档;问题描述(1)背包问题给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V?它是在1978年由Merkle和Hellman提出的。(2)动态规划算法动态规划(Dynamic Pro原创 2020-11-16 15:41:46 · 1249 阅读 · 0 评论 -
实验三:动态规划算法与贪心算法
实验三:动态规划算法与贪心算法用动态规划思想设计实现最长公共子序列问题,用贪心思想设计实现活动安排问题,并且用不同数据量进行实验对比分析,要求分析算法的时间复杂性并且形成分析报告。问题描述(1)动态规划算法动态规划算法, Dynamic Programming简称DP,通常基于一个递推公式及一个或多个初始状态。 当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度, 因此它比回溯法、暴力法等要快许多。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动.原创 2020-11-16 15:27:33 · 1456 阅读 · 0 评论 -
实验二:线性时间选择
实验二:线性时间选择问题描述(1)线性时间选择问题给定线性序集中n个元素和一个整数k,1<=k<=n.要求找出这n个元素中第k小的元素,即如果将这个n个元素依其线性序排列时,排在第k个位置的元素就是要找的元素,当k==1时,要找的就是最小的元素;当k==n,就是最大的元素;当k=(n+1)/2,称为中位数。实验目的(1)掌握线性时间选择算法(2)体会线性时间选择算法中蕴含的分治思想实验原理分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这..原创 2020-11-16 15:17:10 · 1976 阅读 · 0 评论 -
实验一:二分搜索与快速排序
实验一:二分搜索与快速排序问题描述(1)二分搜索算法二分搜索(英语:binary search),也称折半搜索(英语:half-interval search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不..原创 2020-11-16 15:13:15 · 776 阅读 · 0 评论