锘??xml version="1.0" encoding="utf-8" standalone="yes"?> sort()鍑芥暟涓洪摼琛ㄦ帓搴忥紝榛樿鏄崌搴忋傚鏋滄寚瀹歝ompfunction鐨勮瘽錛屽氨閲囩敤鎸囧畾鍑芥暟鏉ュ垽瀹氫袱涓厓绱犵殑澶у皬銆?/p>
鎺掑簭+璐績
鎺掑簭鏂瑰紡鍙互浣跨敤fastsort()錛岃繖涓彲浠ヤ嬌鐢ㄦā鏉匡紝涔熷彲浠ヨ嚜宸卞啓錛岃繕鍙互浣跨敤STL鐨剆ort()鍑芥暟銆?br>
鎺掑簭(sort)
璇硶:
void sort();
void sort( Comp compfunction );
棣栧厛瀹炵幇榪欎釜鎺掑簭鏈変袱縐嶆柟寮忥紝涓涓嚜宸卞畾涔変竴涓繑鍥炲間負bool鐨勬瘮杈冨嚱鏁般?
涓涓槸鑷繁瀹氫箟綾諱腑鐨?lt;鎿嶄綔鍑芥暟銆?
絎竴縐嶆柟寮忓彲浠ョ畝鍗曞啓涓恒?
bool cmp(node x,node y)
{
return x.key1<b.key1;
}
sort(vec.begin,vec.end.cmp);
榪欑鎺掑簭鏄粠灝忓埌澶х殑錛屼篃灝辨槸濡傛灉cmp(a,b)涓虹湡錛屽垯a涓瀹氬湪b鐨勫墠闈紝濡傛灉
cmp(a,b)鍜宑mp(b,a)閮戒負false.鐨勮瘽錛屼篃灝辨槸a.key1==b.key1,鍒欎粬浠殑鍏堝悗欏哄簭鍒欐槸涓嶄竴瀹氱殑錛屽彲鑳絘鍦╞鍓嶉潰錛屼篃鍙兘b鍦╝鍓嶉潰銆?
涔熷氨鏄榪欑鎺掑簭綆楁硶鏄笉紼沖畾鐨勩?
絎簩縐嶆柟寮?
struct node{
int key1;
int key2;
book operator <(const node &m)
{
return key1<m.key1;
}
}
榪欐牱灝變笉鐢ㄨ嚜宸卞畾涔夋瘮杈冨嚱鏁般?
瀵逛笌sort()鎺掑簭鏄笉紼沖畾鐨勶紝姝e鍓嶉潰璇寸殑錛屽鏋滈渶瑕佺ǔ瀹氭帓搴忕殑璇濓紝鍙互浣跨敤
stable_sort錛屽畠鍙互淇濊瘉鐩哥瓑鐨勫厓绱犲師鏉ョ殑鐩稿嬈″簭鏄笉鍙樼殑銆?
鍙﹀璐績閫夋嫨鏃訛紝瑕侀愭閫夋嫨錛屽叿浣撲唬鐮佸彲浠ュ弬鑰僁iscuss涓婇潰鐨勩?