c中sort的用法例項說明,c sort 函式用法

2021-07-12 17:33:47 字數 5684 閱讀 1864

1樓:匿名使用者

int a[3] = ;

sort(&a[0], &a[3]);//從小到大排序

從大到小排序

2樓:匿名使用者

#include "iostream"

#include "algorithm"

using namespace std;

typedef int data_t;

返回true表示排序時a應該放在b前面

int main()

;int n=10;

sort(a, a+n);

for (int i=0; i

cout << endl;

sort(a, a+n, mycmp); //見上面的mycmp函式for (int i=0; i

cout << endl;

return 0;

}gcc3.2.3測試通過小小經驗,分享一下

3樓:匿名使用者

#include

void sort( iterator start, iterator end );

void sort( iterator start, iterator end, strictweakordering cmp ); 更詳細的可以參考http://www.99inf.

net/softwaredev/vc/53254.htm

c++ sort()函式用法

4樓:匿名使用者

#include

void sort( iterator start, iterator end );

void sort( iterator start, iterator end, strictweakordering cmp );

c++ sort函式運用詳解

5樓:

●首抄先sort要包含algorithm標頭檔案。

●其次sort是std名稱空間中的函式,要寫std::sort,或者在最開始寫using namespace std;

●最後,c++中的sort很多情況下不需要你寫cmp函式,像你的情況是比較兩個int,可以直接這麼寫:

sort(a+j,a+n-j+1);

sort自己知道如何比較兩個int的。而且即使是複雜的比較,也一般寫仿函式而不是函式,因為仿函式更快。

6樓:8號閃電人

#include

using namespace std;

...sort函式是排序用的,一般用於數

組。int a=;

sort(&a[0],&a[10]);

陣列首地址,和尾地址作

專為引數。

string a[5]=;

sort(&a[0],&a[5]);

字元屬串也可以。

7樓:匿名使用者

是不是沒有加標頭檔案

加上#include 試一下,如果還不行可以再提供一下細節,再討論一下

c++中sort()怎麼用

8樓:匿名使用者

#include

void sort( iterator start, iterator end );

void sort( iterator start, iterator end, strictweakordering cmp );

第一bai個只需要傳

du遞你要排zhi序的串(整形陣列dao等都行)的頭指

內針(陣列第一個元素容的指標)與陣列最後元素的下一個位置,sort是一個模板哈

第二個前面兩個引數同第一,但第三個引數是傳遞一個你定義用於排序的函式(返回比較的大小值,如strcmp或自定義的都行),因為第一個用的是預設的哈

9樓:匿名使用者

nlogn,快排是最快的了

c語言中的sort函式怎麼使用,請舉出一個例項,非常感謝!

10樓:匿名使用者

#include

#include

using namespace std;

main()

;//a的長度=待排資料個數+1

sort(a,a+10);//對[a,a+10)排序for(int i=0;i<10;++i) cout<

11樓:流星不死

#include //需要包含這個標頭檔案

#include

using namespace std;

int main(void)

;sort(a,a+10);//對a陣列進行升序排序for(int i = 0;i < 10;i++)cout<函式  c語言裡沒有。

sort函式的具體用法?

12樓:少男少女

做acm題的時候,排序是一種經常要用到的操作。如果每次都自己寫個冒泡之類的o(n^2)排序,不但程式容易超時,而且浪費寶貴的比賽時間,還很有可能寫錯。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());

排序的資料型別不侷限於整數,只要是定義了小於運算的型別都可以,比如字串類string。

如果是沒有定義小於運算的資料型別,或者想改變排序的順序,就要用到第三引數——比較函式。比較函式是一個自己定義的函式,返回值是bool型,它規定了什麼樣的關係才是「小於」。想把剛才的整數陣列按降序排列,可以先定義一個比較函式cmp

bool cmp(int a,int b)

排序的時候就寫sort(a,a+100,cmp);

假設自己定義了一個結構體node

struct node

有一個node型別的陣列node arr[100],想對它進行排序:先按a值升序排列,如果a值相同,再按b值降序排列,如果b還相同,就按c降序排列。就可以寫這樣一個比較函式:

以下是**片段:

bool cmp(node x,node y)

排序時寫sort(arr,a+100,cmp);

qsort(s[0],n,sizeof(s[0]),cmp);

int cmp(const void *a,const void *b)

一、對int型別陣列排序

int num[100];

sample:

int cmp ( const void *a , const void *b )

qsort(num,100,sizeof(num[0]),cmp);

二、對char型別陣列排序(同int型別)

char word[100];

sample:

int cmp( const void *a , const void *b )

qsort(word,100,sizeof(word[0]),cmp);

三、對double型別陣列排序(特別要注意)

double in[100];

int cmp( const void *a , const void *b )

qsort(in,100,sizeof(in[0]),cmp);

四、對結構體一級排序

struct in

s[100]

//按照data的值從小到大將結構體排序,關於結構體內的排序關鍵資料data的型別可以很多種,參考上面的例子寫

int cmp( const void *a ,const void *b)

qsort(s,100,sizeof(s[0]),cmp);

五、對結構體

struct in

s[100];

//按照x從小到大排序,當x相等時按照y從大到小排序

int cmp( const void *a , const void *b )

qsort(s,100,sizeof(s[0]),cmp);

六、對字串進行排序

struct in

s[100];

//按照結構體中字串str的字典順序排序

int cmp ( const void *a , const void *b )

qsort(s,100,sizeof(s[0]),cmp);

七、計算幾何中求凸包的cmp

int cmp(const void *a,const void *b) //重點cmp函式,把除了1點外的所有點,旋轉角度排序

13樓:

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型陣列進行快速排序(非降序排列)

C中的ArrayList的Sort方法

a1.sort 1,5,null 1為陣列起始位置,5為從起始位置開始的元素個數,null表示採用預設的排序規則 數字大小排序 字母先後排序等,為null時系統會自動辨別使用什麼排序規則 c 2008 arraylistal newarraylist for inti 10 i 0 i 以下兩種用法...

C 中的用法,C 中new的用法

除了樓上說的 還有 引用 和 取地址 的含義int a int b a 上述兩行語句執行完之後,a b表示同一個變數,對其中一個的操作相當於對另一個的操作 int a int b a 則b中儲存的是a的地址。對 b 的任何操作相當於對a的操作。表示引用,就是物件的另一個名字,例如 int i 10 ...

c中new是什麼意思C中new的用法

c 中new運算子用於動態分配和撤銷記憶體的運算子。new運算子使用的一般格式為new 型別 初值 用new分配陣列空間時不能指定初值。如果由於記憶體不足等原因而無法正常分配空間,則new會返回一個空指標null,使用者可以根據該指標的值判斷分配空間是否成功。一般來說,使用new申請空間時,是從系統...