<style> .reveal .slides { text-align: left; font-size:32px; } </style> ## 530競技程式培力基地(六) ---- - sort --- ## STL sort ---- sort的基本用法 ```cpp= sort(num.begin(),num.end()); ``` 預設的排序是升序 通常用在vector 和 array ---- 遇到array怎麼辦呢? ```cpp= sort(arr,arr+n); ``` ---- sort可以自訂範圍,你要自己注意陣列大小 ```cpp= sort(num.begin()+2,num.end()-1); ``` ---- 如果想要降序呢? ```cpp= bool cmp(int a, int b) { return a > b; // 降序排列,元素會由大到小 } sort(nums.begin(), nums.end(), cmp); sort(nums.rbegin(),nums.rend());//這個我最常用 ``` ---- 如果是其他種呢? ```cpp= const int maxn=1e5; struct node{ int index,value; }arr[1e5]; //如果我們只要sort index 為 0~n-1 的這部分 sort(arr,arr+n,[](const node a,const node b){ return a.val<b.value;// value為先的排序 }); ``` ---- sort是一個好用的函式,之後不用再自己寫排序,也不用擔心sort的時間會不會超過題目要求。 很多題目都需要sort的幫助,例如:二分搜、取中位數... ---- 下一次上課 時間複雜度的估算 $O(f(n))$ 你們要準備出新手村了 接下來是一片演算法的海洋(不要溺水囉) --- [題目連結](https://vjudge.net/contest/764159)
{"contributors":"[{\"id\":\"2f04e9e4-ce0e-4fa7-9f7e-a3c9ae53239b\",\"add\":978,\"del\":58,\"latestUpdatedAt\":1762418949264}]","description":"stack","title":"530競技程式培力基地(六)"}
    85 views