10 2013 档案

摘要:将一个给定的数组洗牌,要求时间复杂度O(n),空间复杂度1:#includeint randomNum(int start,int end);int shuffle(int *a,int len);int main(void){ int a[10]={0,1,2,3,4,5,6,7,8,9}; int i; printf("洗牌前的数组:"); for(i=0;i<10;i++){ printf("%d ",a[i]); } srand(time(NULL));//刷新随机数 shuffle(&a,10); printf("\n洗 阅读全文
posted @ 2013-10-16 19:08 ydp 阅读(418) 评论(0) 推荐(0)
摘要:#include#include#include#define N 100#define M 2*N-1typedef char *HuffmanCode[2*M];typedef struct{int weight;//权值int parent;//父节点int Lchild;//左int Rchild;//右}HTNode,Huffman[M+1];//huffman树typedef struct Node{int weight;//叶子权值char c;//叶子int num;//叶子的2进制码长度}WNode,WeightNode[N];void CreatWeight(char ch 阅读全文
posted @ 2013-10-11 15:08 ydp 阅读(338) 评论(0) 推荐(0)
摘要:分支限界法定义:分支定界 (branch and bound) 算法是一种在问题的解空间树上搜索问题的解的方法。但与回溯算法不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,并且,在分支定界算法中,每一个活结点只有一次机会成为扩展结点。利用分支定界算法对问题的解空间树进行搜索,它的搜索策略是: 1 .产生当前扩展结点的所有孩子结点; 2 .在产生的孩子结点中,抛弃那些不可能产生可行解(或最优解)的结点; 3 .将其余的孩子结点加入活结点表; 4 .从活结点表中选择下一个活结点作为新的扩展结点。如此循环,直到找到问题的可行解(最优解)或活结点表为空。分支限界法的思想是:首先... 阅读全文
posted @ 2013-10-09 22:16 ydp 阅读(3673) 评论(0) 推荐(0)