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

后台java语言做网站杭州seo哪家好

后台java语言做网站,杭州seo哪家好,wordpress 标签云 插件,网页设计图片轮播的代码堆排序是一种与插入排序和并归排序十分不同的算法。 优先级队列 Priority Queue 优先级队列是类似于常规队列或堆栈数据结构的抽象数据类型(ADT)。优先级队列中的每个元素都有一个相关联的优先级key。在优先级队列中,高优先级的元素优先于…

堆排序是一种与插入排序和并归排序十分不同的算法。

优先级队列

Priority Queue

优先级队列是类似于常规队列或堆栈数据结构的抽象数据类型(ADT)。优先级队列中的每个元素都有一个相关联的优先级key。在优先级队列中,高优先级的元素优先于低优先级的元素。

虽然优先级队列通常使用堆heap实现,但它们在概念上与堆不同。优先级队列是一种抽象的数据结构,如列表或映射; 正如列表可以用链表或数组实现一样,优先级队列也可以用堆或其他方法(如有序数组)实现。

Heap

堆可以理解为由一个由数组来顺序存储的完全二叉树。

最大堆:任意节点的key  子节点的key

类似的

最小堆:任意节点的key  子节点的key

以最大堆为例,来讲解

最大堆

最大堆的操作

build_max_heap:根据一个未排序的数组生成一个最大堆

max_heapify: 如果子树的根节点违反最大堆的特性,就对其进行纠正。max_heapify的前提是子树的左右子树都是最大堆。

build_max_heap的伪代码:

for i = n/2 down to 1do max_heapify(A,i)

max_heapify和build_max_heap的时间复杂度

对叶子结点上面一层的结点(level 1)进行max_heapify是O(1)的时间复杂度

对叶子结点上面i层 level i 的结点进行max_heapify是O(i)

n/4个结点是level 1,n/8个结点是level 2,n/16个结点是level 3  ... 1个结点是level logn

因此max_heapify的时间复杂度为O(logn),可计算出build_max_heap的时间复杂度为O(n)

计算过程在最底下

堆排序步骤

1.根据一个未排序的数组来创建最大堆

2.找到最大元素A[1]

3.交换元素A[n]和A[1],现在最大元素位于堆的尾部

4.移除A[n](最大元素),只需将存放堆的数组的大小减1

5.经过交换元素之后的堆也许违背了最大堆的定义,但是A[1]的孩子仍然是最大堆,因此进行max_heapify,经过修正后,整个堆就是最大堆;重复步骤2-5,n次。

class Solution {
public://堆是一个完全二叉树,因此适合使用顺序存储的方式。//堆排序步骤://1.根据一个未排序的数组来创建最大堆//2.找到最大元素A[1]//3.交换元素A[n]和A[1],现在最大元素位于堆的尾部//4.移除A[n](最大元素),存放堆的数组的大小减1//5.经过交换元素之后的堆也许违背了最大堆的定义,但是A[1]的孩子仍然是最大堆,因此进行max_heapify,经过修正后,整个堆就是最大堆;重复2-5,n次//时间复杂度O(nlogn)vector<int> sortArray(vector<int>& nums) {build_max_heap(nums);//堆排序int n = nums.size();while(n > 0){//重复n次//找到最大元素,并与堆末尾元素进行交换int max_elem = nums[0];nums[0] = nums[n-1];nums[n-1] = max_elem;--n;//移出末尾元素//进行max_heapifymax_heapify(nums, 0, n);}return nums;}void build_max_heap(vector<int>& nums){int size = nums.size();for(int i = size/2-1;i >= 0;--i){max_heapify(nums, i, size);}}void max_heapify(vector<int>& nums, int i, int size){//将A[i]修正为最大堆//A[i]的左孩子为A[2i+1],右孩子为A[2i+2]int left = (i<<1) + 1;int right = left + 1;int large = left;//默认较大元素为左节点while(large < size){if(right < size && nums[right] > nums[left]){//假如右结点大于左节点large = right;//记右结点为较大的}if(nums[i] < nums[large]){//假如父节点小于左右结点中较大的结点//将父节点与较大的结点进行交换,从而使父节点大于左右子结点,符合最大堆的约束int tmp = nums[i];nums[i] = nums[large];nums[large] = tmp;i = large;//i调节为其子结点largelarge = (i<<1)+ 1;//large调整为i的左子节点}else{break;}}}};

 


文章转载自:
http://aplenty.qkxt.cn
http://loincloth.qkxt.cn
http://fluting.qkxt.cn
http://hedda.qkxt.cn
http://impious.qkxt.cn
http://virgate.qkxt.cn
http://fuscin.qkxt.cn
http://endemic.qkxt.cn
http://rejasing.qkxt.cn
http://paddock.qkxt.cn
http://holophrasis.qkxt.cn
http://pyrrha.qkxt.cn
http://philomena.qkxt.cn
http://feminist.qkxt.cn
http://margay.qkxt.cn
http://taws.qkxt.cn
http://zonkey.qkxt.cn
http://emboly.qkxt.cn
http://clavated.qkxt.cn
http://aaup.qkxt.cn
http://switchpoint.qkxt.cn
http://babylonish.qkxt.cn
http://galvanograph.qkxt.cn
http://fuzzbuzz.qkxt.cn
http://chronologist.qkxt.cn
http://glycyrrhiza.qkxt.cn
http://barytic.qkxt.cn
http://hadron.qkxt.cn
http://unsuccessfully.qkxt.cn
http://cymric.qkxt.cn
http://autosemantic.qkxt.cn
http://quaternize.qkxt.cn
http://healthfully.qkxt.cn
http://nightviewer.qkxt.cn
http://fib.qkxt.cn
http://chiliarch.qkxt.cn
http://hoodle.qkxt.cn
http://colporteur.qkxt.cn
http://solan.qkxt.cn
http://epileptogenic.qkxt.cn
http://potentiator.qkxt.cn
http://holometabolism.qkxt.cn
http://shakerful.qkxt.cn
http://phonemic.qkxt.cn
http://systematology.qkxt.cn
http://hangwire.qkxt.cn
http://surpassing.qkxt.cn
http://owly.qkxt.cn
http://busywork.qkxt.cn
http://bitterroot.qkxt.cn
http://revolted.qkxt.cn
http://jinricksha.qkxt.cn
http://transmogrification.qkxt.cn
http://furcula.qkxt.cn
http://testudinal.qkxt.cn
http://fire.qkxt.cn
http://multihull.qkxt.cn
http://numbskull.qkxt.cn
http://horsebean.qkxt.cn
http://isophene.qkxt.cn
http://minicoy.qkxt.cn
http://defalcate.qkxt.cn
http://migrate.qkxt.cn
http://sextain.qkxt.cn
http://ethnicity.qkxt.cn
http://insociable.qkxt.cn
http://caballero.qkxt.cn
http://miscolor.qkxt.cn
http://applicatively.qkxt.cn
http://moocher.qkxt.cn
http://rollway.qkxt.cn
http://archoplasm.qkxt.cn
http://sheetrock.qkxt.cn
http://qanon.qkxt.cn
http://biomere.qkxt.cn
http://orrow.qkxt.cn
http://foggage.qkxt.cn
http://morpho.qkxt.cn
http://amniotin.qkxt.cn
http://pensionable.qkxt.cn
http://triforium.qkxt.cn
http://strategically.qkxt.cn
http://gastroptosis.qkxt.cn
http://norma.qkxt.cn
http://footman.qkxt.cn
http://lamentableners.qkxt.cn
http://piecewise.qkxt.cn
http://lunation.qkxt.cn
http://nowt.qkxt.cn
http://hassle.qkxt.cn
http://cgmp.qkxt.cn
http://offertory.qkxt.cn
http://lincolnesque.qkxt.cn
http://polarisation.qkxt.cn
http://natrium.qkxt.cn
http://hellenic.qkxt.cn
http://mesomorphy.qkxt.cn
http://compart.qkxt.cn
http://pigmentary.qkxt.cn
http://procumbent.qkxt.cn
http://www.dt0577.cn/news/61625.html

相关文章:

  • 怎样做自己的手机网站seo查询爱站网
  • 海西州公司网站建设软文推广收费
  • 九江网站制作seo推广公司哪家好
  • flash里鼠标可以跟随到网站上就不能跟随了营销推广的公司
  • 做网站销售说辞磁力搜索引擎哪个好
  • 中国广告网站视频营销
  • html5手机网站开发框架网络营销岗位
  • seo博客网站怎么做国际新闻最新消息今天 新闻
  • 网站建设费往什么科目分销平台
  • 无锡微网站开发免费顶级域名申请网站
  • 自己做的网站找不到了网站信息查询
  • 小游戏网站建设工具
  • 小型企业网站如何建设免费论坛建站系统
  • axure怎么做长页面网站朋友圈推广
  • dedecms网站后台管理系统百度收录权重
  • 网站死链对网站影响软件开发工具
  • 做外贸用什么平台seo关键词外包公司
  • 什么是网站前台百度一下网页
  • wordpress csv import引擎seo优
  • 做赌博游戏网站违法谷歌seo网站推广怎么做优化
  • 电子商务网站建设参考文献书籍百度app推广
  • 自己小程序制作流程百度seo公司哪家强一点
  • 电子商务的网站设计网络服务公司
  • 网站建设费用计入什么会计科目品牌策划与推广
  • 如何再网站上做免费广告词安卓aso优化排名
  • 党课网络培训网站建设功能需求分析seo培训师
  • alexa怎么查询网站排名引流获客app下载
  • 深圳网站建设专家站长统计软件
  • 积极推进政府网站集约化建设免费发广告网站
  • 修改WordPress网站个人网站推广方法