1. sort函數
跟java的差不多,java的詳見java數組排序,但是c++是stl ,算法跟容器分離,所以參數是迭代器,數組的話是頭尾指針。
sort(a,a+n);
默認從小到大,如果要從大到小,定義一個比較函數返回bool即可:
bool my_greater(int i,int j){
return i>j;
}
sort(a, a + n, my_greater);
vector的話用v.begin(),v.end()來操作。
還是挺方便的。
2. partial_sort
有時候你不想全部都排序,只要前k個元素是有序的,那麼可以用partial_sort,比如hdu的1425這題,用partial_sort的話會比sort全排要快上200ms。
三個參數,第二個傳入k位索引即可:
partial_sort(a,a+k, a + n, my_greater);
3. 其他排序
stable_sort 穩定排序。