細說C 中的sort 函式

2022-09-03 01:12:13 字數 993 閱讀 9438

我們在演算法程式中用的最多的函式就行sort,但經常會忘記如何寫比較函式,這裡詳細做個總結。

1) c++中sort函式的原型

default (1)

template void sort (randomaccessiterator first, randomaccessiterator last);

custom (2)

template void sort (randomaccessiterator first, randomaccessiterator last, compare comp);

包含randomaccessiterator迭代器,自定義的包含compare函式類;

2) compare 函式類

compare 函式類來對元素進行比較,實現排序;因此有以下三種方式來實現compare類

(實現函式必須是嚴格遞增或者遞減關係)

1. 元素自身包含了比較關係,如int,double等基礎型別,可以直接進行比較

greater() 遞減, less() 遞增,用偽函式可以實現;還包含

2. 元素本身為class或者struct,類內部需要過載< 運算子,實現元素的比較;

注意事項:bool operator<(const classname & rhs) const;  如何引數為引用,需要加const,這樣臨時變數可以賦值;過載operator《為常成員函式,可以被常變數呼叫; 

3. 類外實現,用bool (*) ( eletype a1,eletype a2)  或者 bool (*) (const eletype & a1, const eletype & a2) 

4. 函式類實現, 在類中過載()操作符

struct info

bool operator<(info rhs) const

};struct cmp

};bool cmp( info a1, info a2)

c 中的sort 函式

起來自己天天排序排序,冒泡啊,二分查詢啊,結果在stl中就自帶了排序函式sort,qsort,總算把自己解脫了 所以自己總結了一下,首先看sort函式見下表 函式名 功能描述 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 partial sort 對給...

C 中的sort函式

一 為什麼要用c 標準庫里的排序函式 sort 函式是 c 一種排序方法之一,學會了這種方法也打消我學習 c 以來使用的氣泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用的排序方法是類似於快排的方法,時間複雜度為n log2 n 執行效率較高!二 c 標準庫里的排序函式的使用方法 i sort...

c 中的sort 函式

起來自己天天排序排序,冒泡啊,二分查詢啊,結果在stl中就自帶了排序函式sort,qsort,總算把自己解脫了 所以自己總結了一下,首先看sort函式見下表 函式名 功能描述 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 partial sort 對給...