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

杭州网站推广公司企业建站设计

杭州网站推广公司,企业建站设计,郑州网站建设msgg,申请商标注册需要什么资料一、问题概述 优先级队列的定义#xff1a; 优先级队列不同于普通的队列#xff0c;普通的队列具有先进先出的原则#xff0c;而优先级队列是选择优先级最高的先出队。那么#xff0c;如何模拟实现优先级队列呢#xff1f;在这里#xff0c;我们将较大的值作为优先级较高…一、问题概述 优先级队列的定义 优先级队列不同于普通的队列普通的队列具有先进先出的原则而优先级队列是选择优先级最高的先出队。那么如何模拟实现优先级队列呢在这里我们将较大的值作为优先级较高的。 二、解决思路 1用插入排序的思想将它们按由大到小也可由小到大排好序再push到队列中那么队列中的队首元素便是优先级最高的取其front便可得到优先级最高的值。 此时push的时间复杂度为O1,pop的时间复杂度为ON,Top的时间复杂度为O1. 2用选择排序的思想选择出值最大的那个元素将其push到队列中再取次大的push到队列中依次下去将所有值push到队列中那么队列中的队首元素便是优先级最高的取其front便可得到优先级最高的值。 此时push的时间复杂度为ON,pop的时间复杂度为O1,Top的时间复杂度为ON. 那么根据时间复杂度来看两种算法哪一个更好呢 解析一下如果不考虑取Top()比较插入排序和选择排序 插入排序push时间复杂度为O1pop时如果无序的话它是ON,但是如果本身是有序的话pop的时间复杂度就为O1它是可变的分最好最坏 但是选择排序就不一样了它的push的复杂度永远都为ONpop的时间复杂度为O1 综上所述插入排序的思想实现优先级队列更好。 下面把两种优先级队列都实现一下吧~~ 三、实现代码 //插入排序实现优先级队列 #pragma once #includeiostream using namespace std; #includequeue #includeassert.htemplatetypename T T QueuePriority(T *arr1,size_t size) {assert(arr1);queueT q;T arr2[7] {0};arr2[0] arr1[0];for(size_t i 1; i size; i){if(arr2[i-1] arr1[i]){arr2[i] arr1[i];}else{size_t j 0;for(j i-1; j 0; --j){if(arr2[j] arr1[i]){arr2[j1] arr2[j];}else{break;}}arr2[j1] arr1[i];}}for(int k size-1; k 0; k--){q.push(arr2[k]);}return q.front(); }void FunTest() {int arr1[] {1,3,5,4,2,6,0};char arr2[] {a,d,b,c};size_t size sizeof(arr1)/sizeof(arr1[0]);size_t size1 sizeof(arr2)/sizeof(arr2[0]);coutQueuePriorityint(arr1,size)endl;coutQueuePrioritychar(arr2,size1)endl; }int main() {FunTest();return 0; }//用选择排序实现优先级队列 #pragma once #includeiostream using namespace std; #includequeue #includeassert.htemplatetypename T T QueuePriority(T *arr1,size_t size) {assert(arr1);queueT q;for(size_t i 0; i size; i){T max i; for(size_t j i1;j size; j){if(arr1[max] arr1[j]){max j;}}swap(arr1[max],arr1[i]);q.push(arr1[i]);}return q.front(); }void FunTest() {int arr1[] {1,3,5,4,2,6,0};char arr2[] {a,d,b,c};size_t size sizeof(arr1)/sizeof(arr1[0]);size_t size1 sizeof(arr2)/sizeof(arr2[0]);coutQueuePriorityint(arr1,size)endl;coutQueuePrioritychar(arr2,size1)endl; }int main() {FunTest();return 0; }
http://www.pierceye.com/news/860510/

相关文章:

  • 网站建网站建设网页微信头像logo在线制作
  • 微网站模板怎么做买了域名如何做网站
  • 新华美玉官方网站在线做维护一个网站要多少钱
  • 网站内容由什么组成部分网页网站设计价格
  • wordpress方框里面打勾两个域名同一个网站做优化
  • 个人怎么做公司网站闲置电脑做网站服务器
  • 有没有什么 网站能够做试卷wordpress写 a href
  • 西安 北郊网站建设网站上传图片加水印
  • 沈阳网站制作哪家好包头爱出行app最新版本
  • 怎么用IP做网站地址网站如何投放广告
  • 试述电子商务网站的建设流程太原建站的模板
  • 微信群投票网站怎么做的企业门户网站怎么做
  • 建网站平台 优帮云嘉兴营销型网站
  • 建筑类专业做教育的网站ui设计app
  • 郑州做营销型网站的公司什么叫社交电商平台
  • 外国做问卷可以赚钱的网站做中国菜的外国网站
  • 青岛市建设厅网站快递网站建设
  • 昆明网站WordPress文章怎么折叠
  • 拖拽建站系统源码企业主题展厅设计公司
  • asp.net网站的数据库配置张家港网站 设计制作
  • 聊城手机网站建设多少钱扬州网站建设哪个好薇
  • 云南安宁做网站的公司手机网页制作软件中文版
  • 如何做征信公司网站做谷歌推广一定要网站吗
  • 重庆市做网站的公司有哪些苏州网站建设设计公司
  • 网站制作计算机域名解析到网站
  • 自己做的电影网站打开很慢wordpress 防采集
  • 西安专业网站建设公司排名做网站编写
  • 做电影网站还能赚钱云南网站建设哪家公司好
  • 重庆定制网站开发什么是网络营销战略
  • 网站建设硬件方案精准客源app