算法
yisun03
这个作者很懒,什么都没留下…
展开
-
动态规划思想实现最长回文子串(c++代码)
思想:假设dp[i,j]=1,表示str[i…j]是回文串,dp[i,j]=0表示str[i,j]不是回文串.if str[i] == str[j] then dp[i,j] = dp[i+1,j-1].if str[i] != str[j] then dp[i,j] = 0.代码:完整代码已上传我的github,项目名DP,其中还有最大公共子序列和最长公共子串的实现:https://github.com/yisun03/DPLPS.h//// Created by yis o.原创 2020-07-13 13:19:28 · 749 阅读 · 0 评论 -
动态规划思想计算最大公共子串(c++代码)
问题: 计算两个字符串的最大公共子串(longest common continue substring), 注意不是子序列是子串,子串是要求字符之间是相连的,而序列则只要求是保持前后顺序不变. 我们这里要求的是最长公共子串的长度.思想:设:C[i,j] = LCS(str1[1...i],str2[1...j]),即C[i,j]表示序列str1[1...i]和str2[1...j]的最长公共子序列的长度,则 C[m,n] = LCS(str1,str2)...原创 2020-07-12 21:16:55 · 910 阅读 · 0 评论 -
c++实现选择排序
代码说明代码是我亲自码的,调试通过的,代码中有详细的注释,一目了然。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地排序指在排序过程中不申请多余的存储空间,只利用原来存储待排数据的存储空间进行比较和交换的数据排序。4、非原地排序:需要利用额外的数组来辅助排序。5、时间复杂度:一个原创 2020-07-01 14:33:08 · 606 阅读 · 0 评论 -
c++实现插入排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地原创 2020-07-01 19:07:12 · 409 阅读 · 0 评论 -
c++实现冒泡排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地原创 2020-07-01 19:44:36 · 466 阅读 · 0 评论 -
c++实现希尔排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地原创 2020-07-01 20:50:27 · 475 阅读 · 0 评论 -
c++实现递归的归并排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地原创 2020-07-02 14:29:55 · 806 阅读 · 0 评论 -
c++实现非递归的归并排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。递归实现版本见我的另一篇blog:https://blog.csdn.net/weixin_39408343/article/details/107083607项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b原创 2020-07-02 15:09:00 · 1306 阅读 · 0 评论 -
c++实现递归的快速排序
代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地排序指在排序原创 2020-07-02 15:56:46 · 1505 阅读 · 0 评论 -
c++实现非递归的快速排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort递归实现见我的另一篇blog:https://blog.csdn.net/weixin_39408343/article/details/107086104项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b ..原创 2020-07-02 16:36:58 · 1669 阅读 · 0 评论 -
c++实现堆排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地原创 2020-07-02 20:48:50 · 423 阅读 · 0 评论 -
c++实现计数排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地原创 2020-07-02 22:31:58 · 1490 阅读 · 0 评论 -
c++实现桶排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地原创 2020-07-03 20:08:04 · 3576 阅读 · 1 评论 -
十大排序算法的c++实现看这篇就够了(可直接用在自己项目中)
我将十大排序算法做成一个类,代码中有丰富的注释,包括算法思想,明了易懂。您也可以直接拿来使用,不需要自己再花时间实现。您只需要将两个文件:sort.h和sort.cpp放到您的项目中并在你的代码中使用:yis::sort::sort_name;即可完成对应排序算法的排序。为了防止名字冲突我添加了"yis"命名空间(当然您可以对源码进行修改)。项目地址见我的github: https://github.com/yisun03/sort如果代码中哪里的注释或思想我有说错(当然代码都..原创 2020-07-03 22:11:07 · 282 阅读 · 0 评论 -
c++实现基数排序
代码说明代码是我亲自码的,调试通过的,代码中有算法思想和详细的注释,一目了然。项目已经上传到我的github:https://github.com/yisun03/sort项目中近期会陆续更新十种排序算法的c++实现代码以及其思想。术语说明1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。3、原地排序:原地原创 2020-07-03 21:18:35 · 3434 阅读 · 5 评论 -
动态规划思想计算最大公共子序列(c++代码)
问题:计算两个字符串的最大公共子序列(longest common substring),注意是子序列不是子串,子串是要求字符之间是相连的,而序列则只要求是保持前后顺序不变.比如str1 = "abc"和str2 = "bac"的最长公共子序列为"bc"和“ac".我们这里要求的是最长公共子序列的长度.思想:计算两个数组的最长公共子序列.设:C[i,j] = LCS(str1[1...i],str2[1...j]),即C[i,j]表示序列str1[1...i]和str2[1...j]的原创 2020-07-12 20:29:25 · 399 阅读 · 0 评论