使ç¨sortæåºç»æä½ç½ä¸ä¾åå¾å¤ç å°±æ¯å
åä¸ä¸ªæåºå½æ°
ç¶å让sortæç
§ä½ çå½æ°æåºå°±è¡äº
STL éé¢æ个 sort å½æ°ï¼å¯ä»¥ç´æ¥å¯¹æ°ç»æåºï¼å¤æ度为 n*log2(n) ã使ç¨è¿ä¸ªå½æ°ï¼éè¦å
å«å¤´æ件ã
è¿ä¸ªå½æ°å¯ä»¥ä¼ 两个åæ°æä¸ä¸ªåæ°ã第ä¸ä¸ªåæ°æ¯è¦æåºçåºé´é¦å°åï¼ç¬¬äºä¸ªåæ°æ¯åºé´å°¾å°åçä¸ä¸å°åãä¹å°±æ¯è¯´ï¼æåºçåºé´æ¯ [a,b) ãç®åæ¥è¯´ï¼æä¸ä¸ªæ°ç» int a[100] ï¼è¦å¯¹ä» a[0] å° a[99] çå
ç´ è¿è¡æåºï¼åªè¦å sort(a,a+100) å°±è¡äºï¼é»è®¤çæåºæ¹å¼æ¯ååºã
æ¿æåºçâ AC ççç¥âè¿é¢æ¥è¯´ï¼éè¦å¯¹æ°ç» t ç第 0 å° len-1 çå
ç´ æåºï¼å°±å sort(t,t+len);
对åé v æåºä¹å·®ä¸å¤ï¼ sort(v.begin(),v.end());
å¦ææ¯æ²¡æå®ä¹å°äºè¿ç®çæ°æ®ç±»åï¼æè
æ³æ¹åæåºç顺åºï¼å°±è¦ç¨å°ç¬¬ä¸åæ°ââæ¯è¾å½æ°ãæ¯è¾å½æ°æ¯ä¸ä¸ªèªå·±å®ä¹çå½æ°ï¼è¿åå¼æ¯ bool åï¼å®è§å®äºä»ä¹æ ·çå
³ç³»ææ¯âå°äºâãæ³æåæçæ´æ°æ°ç»æéåºæåï¼å¯ä»¥å
å®ä¹ä¸ä¸ªæ¯è¾å½æ° cmp
bool cmp(int a,int b)
{
return a>b;
}
æåºçæ¶åå°±å sort(a,a+100,cmp);
å设èªå·±å®ä¹äºä¸ä¸ªç»æä½ node
struct node{
int a;
int b;
double c;
}
æä¸ä¸ª node ç±»åçæ°ç» node arr[100] ï¼æ³å¯¹å®è¿è¡æåºï¼å
æ a å¼ååºæåï¼å¦æ a å¼ç¸åï¼åæ b å¼éåºæåï¼å¦æ b è¿ç¸åï¼å°±æ c éåºæåãå°±å¯ä»¥åè¿æ ·ä¸ä¸ªæ¯è¾å½æ°ï¼
以ä¸æ¯ä»£ç ç段ï¼
bool cmp(node x,node y)
{
if(x.a!=y.a) return x.a
if(x.b!=y.b) return x.b>y.b;
return return x.c>y.c;
}
æåºæ¶å sort(a,a+100,cmp);
温馨提示:内容为网友见解,仅供参考