1樓:匿名使用者
#include
void sort( iterator start, iterator end );
void sort( iterator start, iterator end, strictweakordering cmp );
c++ algorithm 裡的sort函式怎麼用
2樓:四舍**入
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),執行效率較高。
3樓:匿名使用者
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型陣列進行快速排序(非降序排列)
4樓:匿名使用者
可以不填,如果不填就是從小到大排序。
#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);
5樓:貿金蘭嬴橋
void
sort(
iterator
start,
iterator
end);
void
sort(
iterator
start,
iterator
end,
strictweakordering
cmp);
第一個只需要傳遞你要排序的串(整形陣列等都行)的頭指標(陣列第一個元素的指標)與陣列最後元素的下一個位置
第二個前面兩個引數同第一,但第三個引數是傳遞一個你定義用於排序的函式(返回比較的大小值,如strcmp或自定義的都行),因為第一個用的是預設的哈
關於Python中sort函式賦值的問題
python中的sort 方法用於陣列排序,本文以例項形式對此加以詳細說明 一 基本形式 列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。123x 4,6,2,1,7,9 x.sort print x 1,2,4,6,7,9 如果需...
C語言,編寫函式,函式是用選擇排序法將陣列排序
px 10 改為 px a 編寫函式,使用選擇排序法對陣列進行排序 用c語言 include include include int main void if i tmp for i 0 i 10 i printf 3d a i printf n return 0 隨機產生陣列中的元素,更合理一些。...
關於C語言單向連結串列,編寫主函式,要求用函式實現如下功能
include using namespace std class node class linklist void insert node node,int index if index 0 node current node head int count 0 while current node...