日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

堆优先级队列

發布時間:2024/4/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 堆优先级队列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

優先級隊列可以用堆表示。在一個給定的作業調度或者基于事件驅動的模型中,優先級隊列的元素對應著應用中的對象。通常,我們需要確定一個給定的隊列中元素所對應的應用對象。當用堆來實現優先級隊列時,需要在堆中的每個元素里存儲對應應用對象的柄(handle)。下面討論如何實現基于堆的最大優先級隊列。

#include <iostream> using namespace std; int size=0; void Maxheapify(int A[],int i){ int left=2*i,right=2*i+1,largest; if (left<=size&&A[left]>A[i]) { largest=left; } else { largest=i; } if (right<=size&&A[right]>A[largest]) { largest=right; } if (largest!=i) { int temp=A[i]; A[i]=A[largest]; A[largest]=temp; Maxheapify(A,largest); } } /*從堆中取出最大值*/ int HeapMax(int A[]){if (size<1){return 0;}int max=A[1];A[1]=A[size-1];Maxheapify(A,1);return max; } /*堆插入*/ void Heapinsert(int A[],int key){int i=++size,temp;A[i]=key;while (i>1&&A[i/2]<A[i]){temp=A[i];A[i]=A[i/2];A[i/2]=temp;i=i/2;} } int main(){ int A[11]; Heapinsert(A,5);Heapinsert(A,1);Heapinsert(A,8);Heapinsert(A,10);for (int i=1;i<=4;i++) { cout<<A[i]<<endl; } return 0; }


轉載于:https://www.cnblogs.com/yue-/archive/2012/05/19/6260076.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的堆优先级队列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。