利用priority_queue函式,需新增標頭檔案queue;
向堆中新增資料使用push(),彈出資料為pop(),頂部資料為top(),判斷是否為空empty(),示例如下:
#include
#include
intmain()
//大根堆:9 8 4 3 0
//小根堆:0 3 4 8 9
return0;
}
過載queue中的比較器
#include
#include
using
namespace std;
struct node};
struct heapcom
};
需新增標頭檔案algorithm;
時間複雜度為o(n*logn),排序的區間是**[a,b)**,預設是公升序:從小到大
#include
#include
intmain()
;sort
(arr.
begin()
, arr.
end())
;//arr: 0 3 4 7 8
sort
(arr.
begin()
, arr.
end(
), greater<
int>()
);//arr: 8 7 4 3 0
return0;
}
sort過載比較運算
#include
#include
#include
"cstring"
using
namespace std;
typedef
struct studentstudent;
bool
cmp(student a, student b)
else
if(a.math == b.math
}int
main()
,,};
//一定是到stus+3
sort
(stus, stus+
3; cmp)
;for
(int i =
0; i <
3; i++
) cout << a[i]
.name <<
" "<< a[i]
.math <<
" "<< a[i]
.english << endl;
return0;
}
需新增標頭檔案set;
#include
#include
#include
intmain()
;// m_set: 9 7 6 5 3 2 1
for(
const
int var : m_set)
return0;
}
(C語言)實現氣泡排序的函式
題目 寫乙個函式實現氣泡排序功能,函式原型 void bubblesort int data,int n 待排序資料儲存在一維整型陣列data中,排序後的結果也儲存在該陣列中。函式內部不能有任何輸入與輸出操作。如果函式採用其他方法正確實現了排序操作,而不是氣泡排序,可以得一半的分數,如果有錯誤,則根...
c 實現最簡快速排序,你絕對可以看懂
演算法對於程式設計師的重要性不言而喻,今天我和大家分享演算法中的乙個基礎演算法,快速排序。作為一名程式設計師,相信大家都不陌生,但是要大家徒手一次性寫出來,我估計還是有難度的。那麼廢話不多少,我先簡單減少一下概念。快速排序演算法說明 原始陣列l1,從中任意選擇乙個基準數f 一般選擇第1個 小於f的資...
用python實現的可以自動補全的字首樹
1,以下是 部分 import os,sys import json class trietree def init self,is debug 1,is sentence 0 self.tree none self.tree self.is debug is debug self.is sente...