• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 70  文章 - 160  trackbacks - 0

            公告:
            知識共享許可協(xié)議
            本博客采用知識共享署名 2.5 中國大陸許可協(xié)議進行許可。本博客版權(quán)歸作者所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意不得隨機刪除文章任何內(nèi)容,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。 具體操作方式可參考此處。如您有任何疑問或者授權(quán)方面的協(xié)商,請給我留言。

            常用鏈接

            留言簿(8)

            隨筆檔案

            文章檔案

            搜索

            •  

            積分與排名

            • 積分 - 179013
            • 排名 - 147

            最新評論

            閱讀排行榜

            評論排行榜

            建議先看看前言:http://www.wutianqi.com/?p=2298

            連載總目錄:http://www.wutianqi.com/?p=2403

            說到貪心算法,避免不了于DP對比,所以前面的DP要了解。

            貪心算法是使所做的選擇看起來都是當(dāng)前最佳的,期望通過所做的局部最優(yōu)選擇來產(chǎn)生一個全局最優(yōu)解。

            依然和上一章總結(jié)DP一樣,我先給出一個最容易入門的例子,來看看神馬是貪心?(是人就會貪心,這個算法很人性化啊

            =。=)

            一個最簡單的例子:

            部分背包問題:

            有N個物品,第i個物品價值vi,重wi,現(xiàn)在你有一個可以裝W 磅的包,你可以選擇帶走每個物品的全部或一部分,求如何選擇可以使背包所裝的價值最大?(這個是不是和前面DP中講的01背包很像?認(rèn)真看清楚兩者題目的不同!)

            假如有三種物品,背包可裝50磅的物品,物品1重10磅,價值60元;物品2重20磅,價值100元;物品3重30磅,價值120元。因此,既然可以選擇只裝一部分,我們可以算出每種物品的單位價值,物品1是每磅6元,物品2是美邦5元,物品3是每磅4元。按照貪心策略,應(yīng)該現(xiàn)狀物品1,如果裝完物品1背包還有空間,再裝物品2……

            16_2

            最后的結(jié)果是:

            16_3

            而如果按01背包,則結(jié)果是:

            16_4

            有興趣的可以拿我那01背包的程序去驗證這個結(jié)果。

            下面是一個部分背包的小程序:

            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            20
            21
            22
            23
            24
            25
            26
            27
            28
            29
            30
            31
            32
            33
            34
            35
            36
            37
            38
            39
            40
            41
            42
            43
            44
            45
            46
            47
            48
            49
            50
            
             
            #include <iostream>
            #include <algorithm>
            using namespace std;
             
            typedef struct Thing{
            	double v;     // value
            	double w;     // weight
            }Thing;
             
            Thing arr[100];
            int n;
            double W;
             
             
            bool cmp(Thing a, Thing b)
            {
            	return a.v/a.w > b.v/b.w;
            }
             
             
            int main()
            {
            	cout << "輸入物品個數(shù): ";
            	cin >> n;
            	cout << "輸入背包可載重量: ";
            	cin >> W;
            	cout << "輸入" << n << "個物品的價值和重量:" << endl;
            	for(int i=0; i<n; ++i)
            		cin >> arr[i].v >> arr[i].w;
            	sort(arr, arr+n, cmp);
            	int k = 0;
            	double value = 0;
            	while(W)
            	{
            		if(W >= arr[k].w)
            		{
            			W -= arr[k].w;
            			value += arr[k].v;
            		}
            		else
            		{
            			value += W * arr[k].v / arr[k].w;
            			W = 0;
            		}
            		++k;
            	}
            	cout << "最大價值是: " << value << endl;
            	return 0;
            }

            結(jié)果如圖:

            16_1

            Tanky Woo 標(biāo)簽: 
            posted on 2011-06-14 13:17 Tanky Woo 閱讀(1767) 評論(5)  編輯 收藏 引用

            FeedBack:
            # re: 《算法導(dǎo)論》學(xué)習(xí)總結(jié) — 21.第16章 貪心算法(1) 基礎(chǔ)入門1 2011-06-14 16:12 吹著風(fēng)
            某種傳染病第一天只有一個患者,前五天為潛伏期,不發(fā)作也不會傳染人 第6天開始發(fā)作,從發(fā)作到治愈需要5天時間,期間每天傳染3個人 求第N天共有多少患者
            請教這個題目怎么做?
            遞歸怎么寫?  回復(fù)  更多評論
              
            # re: 《算法導(dǎo)論》學(xué)習(xí)總結(jié) — 21.第16章 貪心算法(1) 基礎(chǔ)入門1 2011-06-15 09:46 lugesot
            把處于潛伏期的人按的病天數(shù)分配給5個變量,再加一個得病人數(shù)和一個治愈人數(shù)變量
              回復(fù)  更多評論
              
            # re: 《算法導(dǎo)論》學(xué)習(xí)總結(jié) — 21.第16章 貪心算法(1) 基礎(chǔ)入門1 2011-06-15 10:48 吹著風(fēng)
            能把實現(xiàn)寫出來更好!  回復(fù)  更多評論
              
            # re: 《算法導(dǎo)論》學(xué)習(xí)總結(jié) — 21.第16章 貪心算法(1) 基礎(chǔ)入門1 2012-11-24 17:16 
            信息分析的依據(jù)一旦沒有了,那么對于現(xiàn)實的動作與行為之間的分解的出來的過程確實是難以量化的一種結(jié)果,但是自己要做的事情不過是讓這樣的一種信息分析暫時失去信息依據(jù)的分析下面自己對于事情的分析的效果究竟怎么樣的一種,  回復(fù)  更多評論
              
            # re: 《算法導(dǎo)論》學(xué)習(xí)總結(jié) — 21.第16章 貪心算法(1) 基礎(chǔ)入門1 2013-02-13 19:33 
            今天的工作狀態(tài)實際上是一種巔峰下面的無效狀態(tài),或者說迷惑當(dāng)中的無知狀態(tài)當(dāng)中度過整個的7個小時,就本身的7個小時的工作狀態(tài)來說,實際上建立在顧客需求的態(tài)度上面就是一種逼迫顧客想法的狀態(tài)  回復(fù)  更多評論
              

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            精品一二三区久久aaa片| 久久久久亚洲精品无码网址| 精品久久久久久无码人妻热| 久久久久亚洲AV无码专区体验| 伊色综合久久之综合久久| 久久久久久av无码免费看大片| 国产成人精品久久一区二区三区av| 久久久久亚洲AV无码麻豆| 精品久久久噜噜噜久久久| 久久99精品久久久久婷婷| 国产精品久久影院| 国产69精品久久久久99| 国产精品成人无码久久久久久| 国产精品欧美久久久久无广告| 狠狠久久综合| 国产精品成人久久久| 亚洲综合伊人久久综合| 精品国产VA久久久久久久冰 | 色综合久久最新中文字幕| 97久久天天综合色天天综合色hd| 99国产欧美久久久精品蜜芽| 国产精品美女久久久| 国产呻吟久久久久久久92| 亚洲精品综合久久| 久久综合给合久久国产免费| 99久久国产主播综合精品| 久久久精品无码专区不卡| 国产成人精品久久| 亚洲伊人久久大香线蕉苏妲己| 久久精品女人天堂AV麻| 少妇精品久久久一区二区三区| 久久综合综合久久狠狠狠97色88| 性高湖久久久久久久久AAAAA | 色综合久久无码五十路人妻| 国产精品久久99| 无码乱码观看精品久久| 99久久精品国内| 无码人妻少妇久久中文字幕 | 国产一区二区精品久久岳| 囯产精品久久久久久久久蜜桃| 久久亚洲国产午夜精品理论片|