優先順序佇列 和 改變結構體 的排序規則

2021-09-11 13:42:22 字數 1296 閱讀 1149

參考了  :

能站在巨人的肩膀上,也是一種本事!

------------------------------------------

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...