1. 算法描述 适用于最优化问题的算法往往包含一系列步骤,每一步都有一组选择,对许多最优化问题来说,采用动态规划方法来决定最佳选择有点繁琐了,只要采用另一些更简单有效的算法就行了。贪心算法是使所做的选择看起来都是当前最佳的,期望通过所做的局部最优选择来产生衣蛾全局最优解。 贪心算法 ...
前言:贪心算法也是用来解决最优化问题,将一个问题分成子问题,在现在子问题最优解的时,选择当前看起来是最优的解,期望通过所做的局部最优选择来产生一个全局最优解。书中先从活动选择问题来引入贪心算法,分别采用动态规划方法和贪心算法进行分析。本篇笔记给出活动选择问题的详细分析过程,并给出详细的实现代码进行测试验证。关于贪心算法的详细分析过程,下次在讨论。 活动选择问题描述 有一个需要使用每个资源的n个活 ...
2013-03-16 18:10 4 8643 推荐指数:
1. 算法描述 适用于最优化问题的算法往往包含一系列步骤,每一步都有一组选择,对许多最优化问题来说,采用动态规划方法来决定最佳选择有点繁琐了,只要采用另一些更简单有效的算法就行了。贪心算法是使所做的选择看起来都是当前最佳的,期望通过所做的局部最优选择来产生衣蛾全局最优解。 贪心算法 ...
1、前言 前段时间忙着搞毕业论文,看书效率不高,导致博客一个多月没有更新了。前段时间真是有些堕落啊,混日子的感觉,很少不爽。今天开始继续看算法导论。今天继续学习动态规划和贪心算法。首先简单的介绍一下动态规划与贪心算法的各自特点及其区别。然后针对0-1背包问题进行讨论。最后给出一个简单的测试 ...
问题描述 i为任务id,s是开始时间,f是结束时间 问题求解 ...
问题描述: 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si <fi。如果选择了活动i,则它在半开时间区间[si, fi)内占用资源 ...
本章通过介绍插入排序和归并排序两种常见的排序算法来说明算法的过程及算法分析,在介绍归并排序算法过程中引入了分治(divide-and-conquer)算法策略。 1、插入排序 输入:n个数(a1,a2,a3,...,an) 输出:输入序列的一个排列(a1',a2',a3 ...
《算法导论》读书笔记之第1章 算法在计算机中的作用 本章是本书的开篇,介绍了什么是算法,为什么要学习算法,算法在计算机中的地位及作用。 算法(algorithm)简单来说就是定义良好的计算机过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。即算法就是一系列的计算步骤 ...
算法导论读书笔记(1) 目录 算法 插入排序 循环不变式与插入算法的正确性 算法分析 插入排序算法的分析 练习 ...
本章开始介绍了堆的基本概念,然后引入最大堆和最小堆的概念。全章采用最大堆来介绍堆的操作,两个重要的操作是调整最大堆和创建最大堆,接着着两个操作引进了堆排序,最后介绍了采用堆实现优先级队列。 1、堆 堆给人的感觉是一个二叉树,但是其本质是一种数组对象,因为对堆进行操作的时候将堆视为一颗 ...