zoukankan      html  css  js  c++  java
  • 算法:01贪心算法

    2.1、基本概念

    2.1.1、贪心本质

    • 1、只根据当前已有的信息做出选择,一旦选择,就不会改变。

    2.1.2、利用贪心算法求解问题的2个特性

    • 1、贪心选择性质
    • 2、最优子结构

    2.1.3、贪心算法秘籍

    • 1、贪心策略:选择当前看上去最好的一个方案。
    • 2、局部最优解:一步步地得到局部最优解
    • 3、全局最优解:把所有的局部最优解合成为原来问题的一个最优解

    2.2、最优装载问题

    2.2.1、题目

    2.2.2、分析&算法设计

    2.2.3、代码

    //program 2-1
    #include <iostream>
    #include <algorithm>
    const int N = 1000005;
    using namespace std;
    double w[N]; // 古董的重量数组
    int main()
    {
        double c;
        int n;
        cout<<"请输入载重量c及古董个数n: "<<endl;
        cin>>c>>n;
        cout<<"请输入每个古董的重量,用空格分开:"<<endl;
        for(int i=0;i<n;i++)
        {
            cin>>w[i]; // 输入每个物品重量
        }
        sort(w,w+n);//按古董重量升序排序
        double tmp=0.0; // tmp为已装载到船上的古董重量
        int ans = 0; // ans为已装载的古董个数
        for(int i=0;i<n;i++)
        {
            tmp+=w[i];
            if(tmp<=c)
                ans++;
            else
                break;
        }
        cout<<"能装入的古董最大数量为Ans=";
        cout<<ans<<endl;
        return 0;
    }
    
    // 30 8
    // 4 10 7 11 3 5 14 2
    // 输出Ans=5
    

    2.2.4、算法解析及优化拓展

    2.3、背包问题

    2.3.1、题目

    2.3.2、分析&算法设计

    2.3.3、代码

    2.3.4、算法解析及优化拓展

  • 相关阅读:
    Silverlight 4中把DataGrid数据导出Excel
    C#正则的委托和lambda表达式用法
    C#简单的写日志方法
    GAE上传失败
    asp.net后台进程做定时任务
    ASP.NET页面生命周期描述
    巴士电台新版发布
    jQuery 1.51.7一些值得注意的更新
    wxPython应用心得
    Ajax保留浏览器历史的两种解决方案(Hash&Pjax)[转]
  • 原文地址:https://www.cnblogs.com/fewolflion/p/14186969.html
Copyright © 2011-2022 走看看