
一个菜鸟的算法之路
文章平均质量分 52
xyzpqre
这个作者很懒,什么都没留下…
展开
-
自动生成随机数测试归并排序
#include#include//数组大小#define N 100//随机数的最大值#define max 100void merge(int a[],int p,int x,int q,int b[]){ int i = p, r = x + 1, k=p; //保证还有数组的元素没有放入临时数组B[]; while(i<=x || r <= q){原创 2016-10-15 21:41:34 · 2820 阅读 · 3 评论 -
快速排序(C语言)
//快速排序//基本思想是:1.分解(分为比基准元素小的 基准元素 比基准元素大的 三部分)//2.递归求解//3.合并#include#include#define N 1000#define max 100int a[N];void swap(int i, int j){ int x = a[i]; a[i] = a[j]; a[j] = x;}i原创 2016-10-16 12:50:22 · 432 阅读 · 0 评论 -
贪心法--最小生成树的Prim算法和Kruskal算法
贪心法的实现过程和思想原创 2016-10-31 12:03:05 · 2241 阅读 · 2 评论 -
回溯法解决0-1背包问题
1.回溯法可以看作是穷举法的一种实现方式2.基本过程:每一步只生成解的一部分(部分解),并立即对该部分解进行评估,若有可能扩展成为'所求解',则继续扩展,得到新的部分解,泛指尝试其他部分解,知道穷尽所有可能.3.解空间:所有的可能的解的集合 解空间树:将解空间组织成树形成的树形结构 常见的解空间树:子集树:任何解向量的每个分量Xi取值与一个集合Sn={0,1}排原创 2016-12-11 01:37:41 · 2686 阅读 · 0 评论 -
贪心法解决0-1背包问题
贪心法是指 在背包没有装满之前,只要能装得下就装进背包.在使用贪心法解决0-1背包问题主要在于分解方案和贪心选择方案.(贪心法不能保证最优解)为了尽可能的得到最优解,选择物品时,总是选择v[i]/w[i]最大的物品装进去所以在程序的开始,应首先对物品按照v[i]/w[i]从大到小进行排序,因此在排序的过程中可以定义一个数组来记录原本的第i个物品在排序之后放在第几位,即th[原创 2016-11-25 17:13:48 · 4201 阅读 · 0 评论 -
线性表的顺序存储
#include #include #define MAXSIZE 20#define ERROR 0#define TRUE 1typedef int NumType;typedef struct{ int Length; NumType data[MAXSIZE];}sqList;//插入//结构体指针只能用->引用结构体成员int insertLis原创 2017-07-15 11:23:52 · 363 阅读 · 0 评论 -
两栈共享空间
(top1的初始值为0,top2的初始值为1;)#include #include #define MAXSIZE 20typedef struct Node{ int data[MAXSIZE]; int top1; int top2;}DoubleSQ;//typedef struct Node *DoubleSQ;//压栈int pushStac原创 2017-07-18 11:11:27 · 411 阅读 · 0 评论