
算法
算法,就是模仿别人的算法来对数据进行增删查改。
码字界陈冠希
一个立志拿代码泡妞的男人·····帅是我的缺点······
展开
-
Nearth==>算法设计与分析/第四章/贪心算法(理论)
/*贪心算法导引:贪心算法总是做出在当前看来是最好的选择,也就是说,贪心算法并不从整体最优上加以考虑,所做的选择只是在某种意义上的局部最优选择。---------------------------------------------------------------------------------------------虽然贪心算法不是对所有问题都能得到整体最优解,但对范围相当...原创 2019-12-10 20:51:25 · 242 阅读 · 0 评论 -
Nearth==>动态规划算法003/最长公共子序列算法
运行效果:代码学习:#include<iostream>using namespace std;#define MAX 1000//输入字符串的最大长度char a[MAX]={0};//输入的字符串1char b[MAX]={0};//输入的字符串2int flag[MAX][MAX];//为了输出字符串1,2的共同字符所设下的标志int count[MA...原创 2019-12-09 16:46:54 · 122 阅读 · 0 评论 -
Nearth==>动态规划算法002/最大子段和算法
运行效果:代码学习:#include<iostream>using namespace std;#define MAXint arr[MAX]={0};void maxSum(int n,int* arr){ int sum=0;//记录最大子序列和 int b=0;//记录之前所求的最大子序列和 for(int i=1;i<=n;i++){ i...原创 2019-12-09 15:15:31 · 134 阅读 · 0 评论 -
Nearth==>动态规划算法001/矩阵连乘算法
运行效果:代码学习:/*为了便于理解,给出如下具体数据便于说明A1:10*20A2: 20*30A3:30*40A4: 40*50r=1:A1,A2,A3,A4.r=2:A1A2,A2A3,A3A4.r=3:A1A2A3,A2A3A4.r=4:A1A2A3A4.*/#include<iostream>using namespace std;#...原创 2019-12-09 14:02:56 · 165 阅读 · 0 评论 -
Nearth==>算法设计与分析/第三章/动态规划算法(理论)
/*一:定义动态规划算法(我的理解):相对于分治测策略来说,都是把一个大问题分解成若干子问题。而唯一的不同在于,分治策略算法的所有子问题都有相同的性质以及相同的解决方法。动态规划算法的子问题性质都不一样,那么针对每个不同性质的子问题,相应的解决方法也不同,所有针对大问题的最终结果来说,它的最优解为这些最优子问题的解得合并。******************************...原创 2019-12-09 11:35:34 · 281 阅读 · 0 评论 -
Nearth==>分治策略007/快速排序算法
链接学习:https://www.runoob.com/w3cnote/quick-sort.html运行效果:代码学习:/*快速排序算法是基于分治策略的另一个排序算法。其基本思想是,对于输入的子数组a[p:r],按以下三个步骤进行排序:1,分解:以a[p]为基准元素将a[p:r]划分成3段,分别是a[p:q-1],a[q],a[q+1:r],使a[p:q-1]中任何一...原创 2019-12-07 21:30:58 · 175 阅读 · 0 评论 -
Nearth==>分治策略006/合并算法
学习链接:https://www.runoob.com/w3cnote/implementation-of-merge-sort.html运行效果:学习代码:(代码有误,待更新)/*合并排序算法是用分治策略实现对n个元素进行排序的算法,其基本思想是:将待排序的元素分成大小大致相同的两个子集合,分别对两个子集和进行排序,最终将排好序的子集合合并成所要求的排好序的集合。*...原创 2019-12-07 21:08:19 · 168 阅读 · 0 评论 -
Nearth==>分治策略004/二分查找算法
运行结果:代码学习:#include<iostream>using namespace std;#define MAX 100int arr[MAX]={0};void halfFind(int* arr,int n,int findData){ int left=1; int right=n; while(left<=right){ int mi...原创 2019-12-07 18:56:53 · 124 阅读 · 0 评论 -
Nearth==>分治策略003/汉诺塔算法
运行结果:代码学习:#include<iostream>using namespace std;char a,b,c;//三座塔void hanoi(int n,char a,char b,char c){ if (n == 1) //这也是递归的终止条件 { cout<<"...原创 2019-12-07 16:23:47 · 182 阅读 · 0 评论 -
Nearth==>分治策略002/整数划分算法
参考学习:https://blog.youkuaiyun.com/qq_41856733/article/details/88574715运行结果:学习代码:/**/#include<iostream>using namespace std;int q(int n,int m){ if(n<1||m<1){ return 0; } if(n==1...原创 2019-12-07 15:44:38 · 143 阅读 · 0 评论 -
Nearth==>分治策略001/全排列算法
运行结果:代码参考:/*全排列问题,即一个数组arr[5]={1,2,3,4,5},一共5个数如果以1为第一个元素,对{2,3,4,5}排序所得到的排列序列,即有:{1,2,3,5,4},{1,2,3,4,5}···也可以把{1,2,3}看成是一个数{a},那么就对{4,5}排序,则所得的全排列为:{a,4,5},{a,5,4},总的全排列个数为:2*/#include...原创 2019-12-07 15:16:38 · 162 阅读 · 0 评论 -
Nearth==>算法设计与分析/第二章/递归与分治策略(理论)
分治法的设计思想是:将一个难以解决的大问题分割成一些规模较小的相同问题,以便各个击破,即分而治之。分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归的求解这些子问题,然后将这些子问题的解合并得到原问题的解。如何分解子问题?从人们的大量实践中发现,在用分治法设计算法时,最好使子问题的规模大致相同,即将一个问题分成大小相等的k个子问题...原创 2019-12-07 15:12:21 · 142 阅读 · 0 评论 -
Nearth==>算法设计与分析/第一章/算法概述
算法:用计算机语言实现的解决某些具体问题的方法。一个算法需要由若干条有限指令组成才能称之为有效算法。算法性质:0~n个输入 至少一个输出 组成算法的每条指令都是确定的,有效的 算法中的每条指令都必须有在限定时间内执行。程序:程序是由算法堆砌而成的。算法复杂性:针对一个问题,要提出解决方案。而对于我们提出的方案,需要我们用特点的方法去分析这个方案是否有效,是否最优。只有通过...原创 2019-12-07 12:41:51 · 225 阅读 · 0 评论 -
Nearth==>贪心算法-003/钱币找零系统(优化代码)
算法更新中:#include<iostream>#include<algorithm>#define Max 7using namespace std;struct Money{ int count;//钱的张数 int value;//钱的面额}money[Max+1];//建立一个关于钱的结构数组,每一个数组中包含了钱的张数,钱的面额。bool ...原创 2019-11-06 16:18:44 · 245 阅读 · 0 评论 -
Nearth==>贪心算法-002/钱币找零问题(最简单的代码)
这里就不提供理论知识的讲解,只提供代码及运行结果,另外算法还在更新中,请勿打扰(提供理论知识的最佳学习路线:点击我,即可给你惊喜······································)#include<iostream>#include<algorithm>using namespace std;const int N=7; int...原创 2019-11-06 15:23:01 · 497 阅读 · 0 评论 -
Nearth==>贪心算法-001/活动选择问题
代码展示://https://blog.youkuaiyun.com/qq_32400847/article/details/51336300#include<cstdio>#include<iostream> #include<algorithm> using namespace std; #define Max 100//控制活动数目int N;//...原创 2019-11-05 21:15:56 · 302 阅读 · 1 评论 -
Nearth==>贪心算法理论学习资源
找到好的资源,就要分享给大家:(贪心算法---一看就很明白:大家去学习借鉴下,有意想不到的收获哦········)贪心算法理论最佳学习资源,点击我,给你惊喜。...原创 2019-11-05 20:32:26 · 117 阅读 · 0 评论 -
Nearth==>分治策略005/棋盘覆盖算法
运行效果:代码学习:#include<iostream>using namespace std;int def[101][101]={0};int count=0;void chess(int a,int b,int aa,int bb,int size){ if(size==1){ return ; } int s=size/2; count++;...原创 2019-12-07 19:04:01 · 119 阅读 · 0 评论 -
Nearth==>选择排序
简介:选择排序就是通过某种算法实现一群无序数据的有序化。那么要如何去书写这个算法,首先就要明白算法的原理。原理:一群无序数据,赋值给一个数组。相应的每个数据对应一个下标,可这个数组是无序的。那么,我们在原来的数组上,再虚拟一个新的数组来存放与原来数组的数据,只是这个新数组是通过算法实现后的有序数组。现在,想象一下,我们对5个无序数据来进行排序。7,3,6,4,1五个数据...原创 2019-09-16 23:43:59 · 166 阅读 · 0 评论