1樓:手機使用者
sort是stl中的函式,如何使用要看你用的什麼容器。你要包陣列中的元素先匯入容器中,如vector,list等。然後象呼叫一般的類方法一樣使用。
sort()的實現方法要看你的stl的實現版本。用的是用快速排序,有的是用intro排序。快速排序的一般複雜度為nlogn,最差情況為n2。
intro排序複雜度始終為nlogn。
2樓:蝸牛爬阿爬
#include
#include
using namespace std;
main()
;//a的長度=待排資料個數+1
sort(a,a+10);//對[a,a+10)排序for(int i=0;i<10;++i) cout<
3樓:亥朝辛自
#include
void
sort(
iterator
start,
iterator
end);
void
sort(
iterator
start,
iterator
end,
strictweakordering
cmp);
第一個只需要傳遞你要排序的串(整形陣列等都行)的頭指標(陣列第一個元素的指標)與陣列最後元素的下一個位置,sort是一個模板哈
第二個前面兩個引數同第一,但第三個引數是傳遞一個你定義用於排序的函式(返回比較的大小值,如strcmp或自定義的都行),因為第一個用的是預設的哈
c++ sort()函式用法
4樓:匿名使用者
#include
void sort( iterator start, iterator end );
void sort( iterator start, iterator end, strictweakordering cmp );
c++中sort()怎麼用
5樓:匿名使用者
#include
void sort( iterator start, iterator end );
void sort( iterator start, iterator end, strictweakordering cmp );
第一bai個只需要傳
du遞你要排zhi序的串(整形陣列dao等都行)的頭指
內針(陣列第一個元素容的指標)與陣列最後元素的下一個位置,sort是一個模板哈
第二個前面兩個引數同第一,但第三個引數是傳遞一個你定義用於排序的函式(返回比較的大小值,如strcmp或自定義的都行),因為第一個用的是預設的哈
6樓:匿名使用者
nlogn,快排是最快的了
c++中排序函式sort用的是什麼方法排序
7樓:匿名使用者
stl的sort函式在資料量大時採用快排,分段遞迴排序,一旦分段後的資料小於某個值,就改用插入排序。如果遞迴層次過深,還會改用堆排序。這樣就結合了各類演算法的所有優點。
8樓:匿名使用者
void sort( iterator start, iterator end );
void sort( iterator start, iterator end, strictweakordering cmp );
第一個只需要傳遞你要排序的串(整形陣列等都行)的頭指標(陣列第一個元素的指標)與陣列最後元素的下一個位置
第二個前面兩個引數同第一,但第三個引數是傳遞一個你定義用於排序的函式(返回比較的大小值,如strcmp或自定義的都行),因為第一個用的是預設的哈
9樓:匿名使用者
標準庫裡面有qsort,也就是快速排序,而std::sort是一個改進版的qsort,更加細緻,對不同陣列大小採用不同方法排序。
c++ algorithm 裡的sort函式怎麼用
10樓:四舍**入
sort函式用法例如:
sort(a,a+n,cmp);
是對陣列a降序排序
又如
else
return 0;}
sort(a,a+n,cmp);
是先按x升序排序,若x值相等則按y升序排。
預設的sort函式是按升序排,sort(a,a+n); //兩個引數分別為待排序陣列的首地址和尾地址。
擴充套件資料:
sort函式語法
sort(start,end,cmp)
引數1、start表示要排序陣列的起始地址
2、end表示陣列結束地址的下一位
3、cmp用於規定排序的方法,可不填,預設升序
功能sort函式用於c++中,對給定區間所有元素進行排序,預設為升序,也可進行降序排序。
一般是直接對陣列進行排序,例如對陣列a[10]排序,sort(a,a+10),而sort函式的強大之處在可與cmp函式結合使用,即排序方法的選擇。
sort()函式是c++一種排序方法之一,相較氣泡排序和選擇排序所帶來的執行效率不高的問題,sort()函式使用的排序方法是類似於快速排序的方法,時間複雜度為n*log2(n),執行效率較高。
11樓:匿名使用者
msdn中的定義:
templatevoid sort(ranit first, ranit last); //--> 1)templatevoid sort(ranit first, ranit last, pred pr); //--> 2)
標頭檔案:
#include
using namespace std;
1.預設的sort函式是按升序排。對應於1)
sort(a,a+n); //兩個引數分別為待排序陣列的首地址和尾地址
2.可以自己寫一個cmp函式,按特定意圖進行排序。對應於2)
例如:
sort(a,a+n,cmp);
是對陣列a降序排序
又如
else
return 0;
}sort(a,a+n,cmp);
是先按x升序排序,若x值相等則按y升序排
與此類似的還有c中的qsort,以下同附上qsort的使用方法:
#include
格式 qsort(array_name,data_number,sizeof(data_type),compare_function_name) (void*)bsearch (pointer_to_key_word,array_name,find_number,
sizeof(data_type),compare_function_name)
e.g.
int cmp(const void*a,const void *b)
qsort(data,n,sizeof(int),cmp); // 對int型陣列進行快速排序(非降序排列)
12樓:匿名使用者
可以不填,如果不填就是從小到大排序。
#include
using namespace std;
#include
#include
int main(void)
for(int i = 0; i < n; i++)cin >> m[i];
sort(m, m + n);
for(int i = 0; i < n; i++)cout << m[i] << ends;//ends是空格return 0;
}如果填的話就是
從大到小排序:
#include
using namespace std;
#include
#include
bool cmp(int a,int b)int main(void)
for(int i = 0; i < n; i++)cin >> m[i];
sort(m, m + n, cmp);
for(int i = 0; i < n; i++)cout << m[i] << ends;//ends是空格return 0;
}說白了,第三個引數就是我們自己寫的一個函式,這個函式只要返回只為int型別就可以了並且有兩個引數就可以了,但是若真的想要做到排序,只要讓(從小到大)這個函式裡寫return ab;
/*cmp只是函式名稱,是可以隨便定義的。a和b的型別也不一定是int,可以是float、double、甚至你自己寫的結構體。但注意你比較的元素不再是a > b*/
int cmp(int a, int b)如有一個結構體陣列:
struct node
a[100];
那麼cmp函式應該這麼寫:
int cmp(struct node a, struct node b)
按照v的大小來從大到小排序只需要:
sort(a, a + 100, cmp);
13樓:貿金蘭嬴橋
void
sort(
iterator
start,
iterator
end);
void
sort(
iterator
start,
iterator
end,
strictweakordering
cmp);
第一個只需要傳遞你要排序的串(整形陣列等都行)的頭指標(陣列第一個元素的指標)與陣列最後元素的下一個位置
第二個前面兩個引數同第一,但第三個引數是傳遞一個你定義用於排序的函式(返回比較的大小值,如strcmp或自定義的都行),因為第一個用的是預設的哈
c++stl中的sort()函式 能對連結串列進行排序嗎?
14樓:匿名使用者
sort演算法的迭代器用的是隨機訪問迭代器,連結串列的不是,因此不能用該演算法,陣列和vector可以
樓上的英文就是這個意思:randomaccessiterator
15樓:匿名使用者
sort演算法的迭代器用的是隨機訪問迭代器(randomaccessiterator ),連結串列的不是,因此不能用該演算法,陣列和vector可以.
16樓:一高小鬼
如果,你建立的是個連結串列的類,sort()就可以直接用物件進行呼叫成員a.sort(),一般不用引數
c++ 的stl的sort()函式是什麼排序,快速排序嗎?
17樓:匿名使用者
不是簡單的快排
stl的sort()演算法,資料量大時採用quick sort,分段遞迴排序,一旦分段後的資料量專小於某個門檻,為避屬免quick sort的遞迴呼叫帶來過大的額外負荷,就改用insertion sort。如果遞迴層次過深,還會改用heap sort。
18樓:匿名使用者
stl的sort()演算法,抄
資料量大時採用quick sort,分段遞迴排序,一旦分段後的資料量小於某個門檻,為避免quick sort的遞迴呼叫帶來過大的額外負荷,就改用insertion sort。如果遞迴層次過深,還會改用heap sort。
cqsort對結構體排序,C 中sort怎麼對結構體陣列中的字串陣列排序?
你如果要按照x的大小順序牌還是y 的大小順序牌,int comp const void a,const void b vc6 幫助裡的對qsort 裡compare函式指標引數的要求 compare void elem1,void elem2 the routine must compare the...
c的stl的sort函式是什麼排序,快速排序嗎
不是簡單的快排 stl的sort 演算法,資料量大時採用quick sort,分段遞迴排序,一旦分段後的資料量專小於某個門檻,為避屬免quick sort的遞迴呼叫帶來過大的額外負荷,就改用insertion sort。如果遞迴層次過深,還會改用heap sort。stl的sort 演算法,抄 資料...
c中如何使用in傳遞sql語句引數
傻,不會變通,直接用select from table where id in a1,a2,a3.明白了嗎?也可以把id拆分出來,既然是id拆分出來以後全部轉成數字,再重新組合,就不用引數了,也不會被注入了。不可以,in使用引數時會強制轉換引數型別與條件欄位一致,不支援構造字串 如果欄位本身為var...