![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 62
YANGFRANKLY
这个作者很懒,什么都没留下…
展开
-
克鲁斯卡尔最小生成树算法
克鲁斯卡尔算法是按照边的权值递增的次序选择合适的边来构造最小生成树的方法。代码如下: #define MAXVEX 100 #define MAXEDGE 100 #define INF 0x7fffff typedef struct edge{ int start; int end; int weight; bool operator <(struct edge e){ if (原创 2016-12-14 12:32:44 · 687 阅读 · 0 评论 -
Dijkstra最短路径算法
// Dijkstra.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #define MAX 100 #define INF 0x7ffff typedef struct{ int e;//边数 int v;//顶点数 int graph[MAX][MAX]; }MGraph; void Ppath(int path[], int i, int原创 2016-12-15 09:38:25 · 440 阅读 · 0 评论 -
Huffman编码
huffman.h #pragma once #include"stdafx.h" typedef struct _htNode { char symbol; struct _htNode *lchild; struct _htNode *rchild; }htNode; typedef struct _htTree{ htNode *root; }htTree; type原创 2016-12-15 10:30:16 · 350 阅读 · 0 评论 -
归并排序
归并排序是利用递归和分治技术将数据划分成越来越小的半子表,再对半子表排序,最后再利用递归方法将排序的半子表合并成越来越大的有序序列。 #include using namespace std; void merge(int a[], int p, int q, int r) { int n1 = q - p+1; int n2 = r - q; int* left = new in原创 2017-05-10 21:01:25 · 291 阅读 · 0 评论 -
KMP算法
// KMP.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; void next(char * s1, int* next, int n); int _tmain(int argc, _TCHAR* argv[]) { /*char s1[50]; char s2[50]; int n =原创 2017-04-20 19:07:34 · 211 阅读 · 0 评论 -
剪绳子
问题:给你一根长度为n的绳子,请把绳子剪成m段(m,n都是整数,n>1,m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]*k[1]*...k[m]可能的最大乘积是多少? #include using namespace std; int maxProductAfterCutting_solution(int length); int main() { co原创 2017-05-11 20:08:42 · 1164 阅读 · 0 评论 -
打印从1到最大的n位数
public class D18 { public static void print1ToN(int n){ if(n<1){ return; } char[] num = new char[n]; Arrays.fill(num, '0'); //System.out.println(Arrays.toString(num)); while(!incre原创 2017-05-16 12:39:31 · 309 阅读 · 0 评论