中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      JAVA認證基礎知識:近似算法格雷厄姆算法簡介

      時間:2024-10-29 14:32:43 JAVA認證 我要投稿
      • 相關推薦

      JAVA認證基礎知識:近似算法(格雷厄姆算法)簡介

        之前做了很多貪心算法,他們都能找到最優解,這也是之所以用貪心算法的原因。貪心算法較之其他,最大的優勢體現在時間復雜度低,空間復雜度也比較低。對于試用貪心算法的題型,有兩個重要特征:貪心策略與最優子結構。貪心策略即每步采取策略的依據;最優子結構則是指問題的求解可以轉化為求解子問題的最優解。這點與動態規劃有點像,但后者要枚舉問題的解空間,資源消耗很大。

      JAVA認證基礎知識:近似算法(格雷厄姆算法)簡介

        貪心算法不一定保證得到最優解,但很多時候用其他方法的無效(有的是確實沒有解決方法,有的是復雜度難以接受),在這種情況下我們可以嘗試用近似算法,根據一定的有效貪心策略,哪怕得不到最優解,但權衡之下也是可以接受的。

        例如給定若干物品,要求盡可能的將它們分成質量相近的兩堆。如物品數為5,重量分別為3,3,2,2,2,很容易根據經驗判斷分成3+3和 2+2+2的兩堆。但這是一個2^n級難題,數據量一大就出現組合爆炸。解決該問題目前還沒有無有效的方法。枚舉法可以得到最優解,但時間復雜度為 O(2^n),難以接受。下面是n<=15時的枚舉法,用位操作簡化計算。

        #include

        #include

        using namespace std;

        const int MAXN=20;

        int w[MAXN];

        int used[MAXN];

        const int INF=1<<30;

        int n,id,sum;

        int Solve()

        {

        int min,cnt=1

        memset(used,0,sizeof(used));

        for(int i=0;i>w[i];

        int ans=Solve();

        for(int i=0;i運行結果為:2+2+2=6 3+3=6

        格雷厄姆提出了解決該問題的近似算法。即每次從尚未分堆的物品中選擇最大我w[i]的,然后分別將它試探性加到已分的兩堆(a1,b1)中,若|a1+w[i]-b1|>|a1-w[i]-b1|,澤加到b1中;否則加到

        a1中。已有神牛可以證明這樣的最終結果與最優解的誤差不超過16%。下面是格雷厄姆算法的實現。

        #include

        #include

        #include

        using namespace std;

        const int MAXN=20;

        int w[MAXN];

        int used[MAXN];

        int n,a,b;

        void Solve()

        {

        sort(w,w+n);

        a=0,b=0;

        for(int i=n-1;i>=0;i--)

        {

        if(abs(a+w[i]-b)<=abs(a-w[i]-b))

        {

        a+=w[i];

        used[i]=true;

        }

        else b+=w[i];

        }

        }

        int main()

        {

        cin>>n;

        memset(used,0,sizeof(used));

        for(int i=0;i>w[i];

        Solve();

        printf(" 第一堆為:");

        for(int i=0;i運行結果為:2+2+3=7 2+3=7

        在有些情況下是完全可以接受近似算法的。

      【JAVA認證基礎知識:近似算法格雷厄姆算法簡介】相關文章:

      JAVA認證簡介03-19

      JAVA認證基礎知識:Java獲取當前的系統時間03-18

      JAVA認證基礎知識:JavaNativeInterface學習小結01-11

      Java認證輔導:Java實現二叉樹遍歷算法03-19

      Java認證基礎知識:java字符串轉化整型問題03-18

      JAVA認證基礎知識:JSP使用數據庫操作03-18

      JAVA認證基礎知識:基于反射機制的服務代理調用03-08

      Adobe認證技能認證簡介03-19

      Adobe認證ning認證簡介03-19

      主站蜘蛛池模板: 人妻无码∧V一区二区| 封开县| 汾西县| 日本一区二区久久精品亚洲中文无 | 五月天无码| 一级少妇无遮掩内射免费| 泰来县| 成在线人免费视频播放| АⅤ天堂中文在线网| 精品国产又大又黄又粗av| 亚洲免费不卡av网站| 廉江市| 国产精品久久精品久久精品久久| 麻豆国产成人AV网| 亚洲VR永久无码一区| 精品黄色av一区二区三区| 亚洲精品中文字幕一区二区三区 | 久久这里只有精品日本| 久久精品国产一区二区涩涩| 青青草视频在线观看视频网站| 强d漂亮少妇高潮在线观看| 嘉荫县| 亚洲精品美女自拍偷拍| 国产精品自线在线播放| 国产亚洲青春草在线视频| 精品国产迪丽热巴在线| 无码人妻丝袜在线视频| 国产精品无码久久久久久久久作品| 国产 在线播放无码不卡| 亚洲中文字幕黄色小视频| 精品国产又大又黄又粗av| 亚洲综合日韩中文字幕| av网站影片在线观看| 精品国产一区二区三区久久女人| 国产激情视频在线观看你懂的| 欧美精品v欧洲高清| 亚洲午夜亚洲精品国产成人| 久久视频在线视频精品| 国色天香精品亚洲精品| 日韩精品人妻中文字幕有码视频| 无码 免费 国产在线观看91|