排序庫函式sort 和qsort

2021-08-04 04:35:36 字數 1049 閱讀 5794

sort是stl中提供的演算法,標頭檔案為#include以及using namespace std; 函式原型如下:

template void sort ( randomaccessiterator first, randomaccessiterator last );

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

第一種無比較函式,預設為從小到大排序。

eg:sort(a,a+n)

第二種需要寫自定義比較函式

eg:

bool compare(int a,int b)

sort(a,a+n,compare);

qsort函式原型

void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )
int compare (const void *elem1, const void *elem2 ) );

qsort(即,quicksort)主要根據你給的比較條件給乙個快速排序,主要是通過指標移動實現排序功能。排序之後的結果仍然放在原來陣列中。

引數意義如下:

第乙個引數 base 是 需要排序的目標陣列名(或者也可以理解成開始排序的位址,因為可以寫&s[i]這樣的表示式)

第二個引數 num 是 參與排序的目標陣列元素個數

第三個引數 width 是單個元素的大小(或者目標陣列中每乙個元素長度),推薦使用sizeof(s[0])這樣的表示式

第四個引數 compare 是自定義比較函式

eg:

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

qosrt(a,n,sizeof(a[0]),compare);

C C 中排序的庫函式sort和qsort

1.sort 必須新增標頭檔案 include sort屬於標準模板庫,只適用於c c語言不支援.include include using namespace std int main sort a,a sizeof a sizeof a 0 for int i 0 i sizeof a size...

排序函式qsort和sort

qsort函式 sort函式 精心整理篇 文件 先說明一下qsort和sort,只能對連續記憶體的資料進行排序,像鍊錶這樣的結構是無法排序的。首先說一下,qsort qsort 基本快速排序的方法,每次把陣列分成兩部分和中間的乙個劃分值,而對於有多個重複值的陣列來說,基本快速排序的效率較低,且不穩定...

庫函式sort與qsort的使用

總結一下sort和qsort的使用方法。首先看sort函式見下表 函式原型 templatevoidsort ranit first,ranit last templatevoidsort ranit first,ranit last,pred pr 函式名功能描述 sort 對給定區間所有元素進行...