当前位置: 首页 > news >正文

品牌建设的三大理论/外贸网站推广seo

品牌建设的三大理论,外贸网站推广seo,沧州万网信息技术有限公司,做网站说要自己贴税点是怎么回事呀1、头文件:algorithm 对make_heap(), pop_heap(), push_heap()的用法做个总结: make_heap()生成堆,他有两个参数,也可以有三个参数,前两个参数是指向开始元素的迭代器和指向结束元素的下一个元素的迭代器。第三个参数…

1、头文件:algorithm

对make_heap(), pop_heap(), push_heap()的用法做个总结:

make_heap()生成堆,他有两个参数,也可以有三个参数,前两个参数是指向开始元素的迭代器和指向结束元素的下一个元素的迭代器。第三个参数是可选的,可以用伪函数less()和greater()来生成大顶堆和小顶堆,其中type为元素类型。如果只传入前两个参数,默认是生成大顶堆。

push_heap()是在堆的基础上进行数据的插入操作,参数与make_heap()相同,需要注意的是,只有make_heap()和push_heap()同为大顶堆或小顶堆,才能插入。

pop_heap()是在堆的基础上,弹出堆顶元素。这里需要注意的是,pop_heap()并没有删除元素,而是将堆顶元素和数组最后一个元素进行了替换,如果要删除这个元素,还需要对数组进行pop_back()操作。

案例:

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main() 
{vector<int> nums = { 4, 5, 1, 3, 2 ,8 ,7};// generate heap in the range of numsectormake_heap(nums.begin(), nums.end(),less<int>());cout << "initial max value : " << nums.front() << endl;// pop max valuepop_heap(nums.begin(), nums.end());nums.pop_back();cout << "after pop, the max vsalue : " << nums.front() << endl;// push a new valuenums.push_back(6);push_heap(nums.begin(), nums.end());cout << "after push, the max value : " << nums.front() << endl;system("pause");return 0;
}

2、经典题目(TOP K):

最大堆O(nlogk)

  1. 首先选取前K个数建立最大堆(根结点值大于左右结点值)。

  2. 此后,每次从原数组中取一个元素与根进行比较,如果大于根结点的元素,忽视之,取下一个数组元素继续该过程;如果小于根结点的元素,则将其加入最大堆,并进行堆调整,将根元素移动到最后再删除,即保证最大堆中的元素仍然是排名前K的数,且根元素仍然最大。

class Solution {
public:vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {int sz = input.size();vector<int> vec;if (sz == 0 || k <= 0 || sz < k)return vec;for (int i = 0; i < k; ++i)vec.push_back(input[i]);// 以数组前k个元素建立初始的最大堆make_heap(vec.begin(), vec.end(), less<int>());for (int i = k; i < sz; ++i){if (input[i] > vec.front()) // 如果接下来的元素比堆顶元素大,直接跳过continue;else // 如果接下来的元素比堆顶元素小,则调整堆{vec.push_back(input[i]);// 添加新元素调整堆push_heap(vec.begin(), vec.end());// 将堆顶元素调整到最后pop_heap(vec.begin(), vec.end());// 删除最后那个元素vec.pop_back();}}// 以上方法得到的只是求了TopK,但是并未排序,所以使用sort_heap排序一下sort_heap(vec.begin(), vec.end());return vec;}
};int main()
{//4、5、1、6、2、7、3、8vector<int>vec;vec.push_back(4);vec.push_back(5);vec.push_back(1);vec.push_back(6);vec.push_back(2);vec.push_back(7);vec.push_back(3);vec.push_back(8);Solution s;vector<int>result = s.GetLeastNumbers_Solution(vec, 4);for (vector<int>::iterator it = result.begin(); it != result.end(); it++){cout << *it << endl;}system("pause");return 0;
}

【该算法有两个明显的优点】:

没有修改输入的数据(代码中的变量data)。我们每次只是从data中读入数字,所有的写操作都是在容器leastNumbers中进行的。

该算法适合海量数据的输入,不需要将数据一次性全部载入内存。

http://www.lbrq.cn/news/1277479.html

相关文章:

  • 在线制作logo图片/网站seo哪家好
  • 想学做网站学什么教程/网络推广哪个平台最好
  • 黄冈网站推广都有哪些渠道/百度一下官方网站
  • 上海 企业网站建设/短视频推广引流方案
  • 网络营销导向企业网站建设的原则包括/西安seo外包行者seo06
  • 网站流量一直下降/去了外包简历就毁了吗
  • 网站建设谈判技巧/推广网站都有哪些
  • 淮安市城市建设档案馆网站/完整的品牌推广方案
  • 厦门今天刚刚发生的新闻/seo推广怎么做视频教程
  • 花生壳做网站/免费舆情监测平台
  • 做网页设计网站有哪些/邯郸seo优化
  • 手机触屏网站开发/西安seo优化培训机构
  • 网站首页被k 不恢复/上往建站
  • 重新安wordpress网站/seo优化教程下载
  • 网站建设中的需求报告功能/推广app接单网
  • bootstrap建设淘宝网站/自己怎么做一个网页
  • 百度联盟做网站赚钱吗/图片百度搜索
  • 银川森林半岛/深圳seo优化服务商
  • 网站维护什么情况/周口搜索引擎优化
  • 外贸快车做网站怎么样/营销的三个基本概念是什么
  • 中央政府网站建设管理办法/怎么接游戏推广的业务
  • 猪八戒网怎么做网站/网络整合营销
  • 百度优化怎么做/seo视频
  • 网站建设技术方面/私人做网站的流程
  • 群辉怎么做视频网站/青岛快速排名优化
  • 建立网站的公司杭州/网站关键词优化教程
  • 360路由器做网站/哈尔滨推广优化公司
  • 无锡网站建设服务公司/互联网营销师是做什么的
  • 深圳哪里做网站/在线seo
  • 动易网站模板下载/百度网站
  • 《UE教程》第三章第五回——第三人称视角
  • 从结构到交互:HTML5进阶开发全解析——语义化标签、Canvas绘图与表单设计实战
  • 机器学习第二课之线性回归的实战技巧
  • [学习记录]URP流程解析(2)--初始化阶段
  • 01 基于sklearn的机械学习-机械学习的分类、sklearn的安装、sklearn数据集、数据集的划分、特征工程中特征提取与无量纲化
  • 基于Flask的智能停车场管理系统开发实践