摘要:
插入排序直接插入排序/* 直接插入排序 */void insertSort(int a[], int n){ int i,j; for (i=2;i 前后记录位置的增量为dk,不是1 // 2> a[0]只是暂存单元,不是哨兵,当j=1;dk=dk/2) // 步长变化 { for (i=dk+1... 阅读全文
摘要:
1. 背包问题注:0-1背包问题不能用贪心算法求解2. 哈夫曼编码3. 单源最短路径Dijkstra算法4. 最小生成树Prim算法:加点法Kruskal算法(克鲁斯卡尔算法):加边法 阅读全文
摘要:
关键在于贪心算法可行性的证明。题目描述设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si void GreedySelector(int n, Ty... 阅读全文
摘要:
关键是证明可用贪心算法来求解,具体实现简单。题目描述有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。题目分析采用重量最轻者先装的贪心选择策略,贪心算法可行性证明如下:首先证明该问题有一个最优解以贪心选择开始... 阅读全文
摘要:
贪心算法和动态规划一样,都适用于求解最优化问题。贪心算法不是对所有问题都能得到整体最优解,可用贪心算法求解的问题需要具有贪心选择性质和最优子结构性质。基本思想贪心算法总是作出在当前看来是最好的选择(即贪心选择)。也就是说贪心算法并不从整体最优上加以考虑,它所作出的选择只是在某种意义上的局部最优选择。... 阅读全文