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、堆 堆給人的感覺是一個二叉樹,但是其本質是一種數組對象,因為對堆進行操作的時候將堆視為一顆 ...