參考了 :
能站在巨人的肩膀上,也是一種本事!
------------------------------------------
a < b < c < d ..... 從這裡出去 --->
------------------------------------------
自己瞎猜的, 這個**釋了 : 雖然是用小於號 排序,但是大的先出來。
接下來 定義4中情況的 優先順序佇列
1,int 型別,降序
#include#includeusing namespace std;
priority_queue q;
int main()
輸出:
14 12 10 8 6
還有種沒有必要的寫法
#include#includeusing namespace std;
priority_queue ,less> p;
int a[5]=;
int main()
輸出:less:14 12 10 8 6
2,int 公升序
#include#includeusing namespace std;
priority_queue ,greater> q;
int a[5]=;
int main()
輸出:greater:6 8 10 12 14
3,按結構體中某元素降序
#include#includeusing namespace std;
struct node
}輸出:
(14,40) (12,60) (10,100) (8,20) (6,80)
還是看那個圖
------------------------------------------
a < b < c < d ..... 從這裡出去 --->
------------------------------------------
所以 是按照 a.x 從大到小出來的
4 按結構體中某元素公升序
#include#includeusing namespace std;
struct node
}k;priority_queue q;
int main()
}明白了第三個,這個就很好理解了
以我對自己的了解,先掌握這四種就行了,, 堆排序和優先順序佇列
堆排序和優先順序佇列 堆排序 和合併排序一樣,時間複雜度為o nlgn 同時和插入排序一樣,在原序列中進行 這樣堆排序集合了合併排序和插入排序的優點。堆排序的另乙個特點是利用了 堆 這種資料結構.堆資料結構還不止在堆排序中有用,還可以構成乙個有效的優先佇列.堆 是一種資料結構,也是一種陣列物件,如圖...
拓撲排序 優先順序佇列
description 拓撲排序,並且輸出最小字典序的乙個可能順序,採用最小優先順序佇列可以保證按最小字典序輸出。input 輸入第一行包含兩個數n,m分別表示有向無環圖的點數和邊數。接下來m行,每行兩個數ai,bi,表示圖中存在一條ai指向bi的有向邊。output 輸出n個數,每個數用空格隔開,...
堆排序和優先順序佇列priority queue
堆 堆是完全二叉樹,便於用array來儲存堆的所有節點 堆儲存在下標為0開始計數的陣列中,因此在堆中給定下標為i的結點時 如果i 0 結點i是根節點,沒有雙親節點 否則結點i的雙親結點為結點 i 1 2。如果2 i 1 n 1 則結點i無左孩子,否則結點i的左孩子為結點2 i 1。如果2 i 2 n...