程序设计与算法
程序设计与算法
小龙君OvO
这个作者很懒,什么都没留下…
展开
-
Prim算法求最小生成树.
Prim算法求最小生成树. 思想:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V, 再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V; 以此类推,现在的集合V={a,b},再从集合U-V中找到另一点c使得点c到V中任意一点的 权值最小,此时将c点加入集合V,直至所有顶点全部被加入V,此时就构建出了一颗MST。 因为有N个顶点,所以该MST就有N-1条边,每一次向集合V中加入一个点,就意味着找到 一条MST的边 #include<iostr原创 2020-10-22 14:49:28 · 383 阅读 · 0 评论 -
全排列算法
全排列算法 思想:如何计算字符串的下一个排列了?来考虑"926520"这个字符串, 我们从后向前找第一双相邻的递增数字,“20”、"52"都是非递增的,“26 “即满足要求, 称前一个数字2为替换数,替换数的下标称为替换点,再从后面找一个比替换数大的最小数(这个数必然存在) ,0、2都不行,5可以,将5和2交换得到"956220”,然后再将替换点后的字符串"6220"颠倒即得到"950226”。 #include<iostream> #include<stdio.h> #includ转载 2020-10-15 20:29:43 · 151 阅读 · 0 评论 -
矩阵相乘
矩阵相乘 输入一个m行n列矩阵,一个p行q列的矩阵(n = p),相乘得到一个m行q列的矩阵并将其输出 #include<iostream> #include<stdio.h> using namespace std; #define ROW 8 #define COL 8 int a[ROW][COL]; int b[ROW][COL]; int c[ROW][COL]; //矩阵乘法 int main(){ int m,n,p,q; // 第一个矩阵的列数与第二个矩阵的行数一原创 2020-10-11 16:48:59 · 548 阅读 · 0 评论 -
筛法求素数
筛法求素数 #include<iostream> #include<stdio.h> using namespace std; #define MAX_NUM 10000000 char isPrime[MAX_NUM+10];//最终如果isPrime[i] = 1,则表示i是素数,大数组要定义在main函数外面 //筛法求素(质)数 int main(){ for(int i = 0;i <= MAX_NUM;i++){ isPrime[i] = 1; //开始原创 2020-10-10 21:16:06 · 587 阅读 · 0 评论 -
斐波那契数列的算法实现
斐波那契数列的算法实现 法一:递归方法 /* 斐波那契数列: n:0 1 2 3 4 5 6 7 对应斐波那契值: 0 1 1 2 3 5 8 13 */ //递归方法 时间复杂度:O(2^n) public static int fib(int n){ if (n<=1){ return n; } return fib(n-1)+fib(n-2); } 递归法时间复杂度分原创 2020-09-25 12:44:36 · 583 阅读 · 0 评论