c++程序--堆

        STL中的堆容器:

                优先队列(priority_queue).译为优先队列,使用priority_queue要添加头文件—queue

                定义方法为:priorty_queue<typename> name;

                        其中,typename可以是任意基本类型或者容器,name为优先队列的名字。

                        和queue不一样的是,priorty_queue没有front()和back(),而只能通过top()或pop()

访问队首元素(也称堆顶元素),也就是优先级最高的元素。

        代码演示(优先队列):

#include<iostream>
#include<queue>


using namespace std;
int main(){
    //vector作为容器用来存放int类型的元素
    //less<int>表示int变量中,数字越大的优先级越大,排在前面
    //greater<int> 表示 int 变量中,数字越小的优先级越大
    priority_queue<int,vector<int>, less<int> > q;//声明一个int类型的优先级队列
    //当队列或者优先队列中没有元素时,取出头元素会报错
    q.push();
    for(int i=1;i<=10;i++){
        q.push(i);
    }
    cout<<q.top()<<endl;
    return 0;
}

贪心算法:

贪心的本质:

        一个贪心算法总是总是做出当前最好的选择,也就是说,它期望通过局部最优选择从而得到全局优的解决方案。  ——《算法导论》

贪心算法的特点:

        1.贪心算法在解决问题只根据当前已有的信息就做出选择,而且一旦做出了选择,这个选择都不会改变。

        2.换言之,贪心算法并不是从整体最有考虑,它所做出的选择只是在某种意义上的局部最优解。

        3.贪心算法能得到许多问题的整体最优解或整体最优解的近似解。

        4.选择什么样的贪心算法策略,直接决定算法的好坏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值