qsort()定義在頭文件<stdlib.h>中:
_CRTIMP void __cdecl qsort (void*, size_t, size_t, int (*)(const void*, const void*))
qsort(數(shù)組名,元素個(gè)數(shù),每個(gè)元素占用的空間(sizeof),比較函數(shù)),其中比較函數(shù)是自己寫的函數(shù),遵循int com(const void *a,const void *b)的格式。當(dāng)a、b關(guān)系為 > < = 時(shí),分別返回正值 負(fù)值 零(或者相反)。使用const void*而不是char*的原因是為了可以對非字符串類型的數(shù)值進(jìn)行排序。具體實(shí)例如下:
int nn[100],n=100;
int com(const void *a,const void *b)


{
return *(int*)a-*(int*)b;
}

qsort((void *)nn,n,sizeof(int),com);

注意:缺省是升序排序,可以通過函數(shù)com改變排序順序。
sort()定義在在頭文件<algorithm>中。
template<typename _RandomAccessIterator>
void __insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
sort函數(shù)是標(biāo)準(zhǔn)模板庫的函數(shù),已知開始和結(jié)束的地址即可進(jìn)行排序,可以用于比較任何容器(必須滿足隨機(jī)迭代器),任何元素,任何條件,執(zhí)行速度一般比qsort要快。具體事例如下:
char ch[20]="sdasdacsdasdas";

cout<<ch<<endl;
sort(ch,ch+14);
cout<<ch<<endl;
注意:缺省是升序排序。sort中一個(gè)改變排序順序的例子如下:
#include <iostream>
#include <algorithm>

using namespace std;

bool cmp (const int a, const int b)


{
return a > b;
}

int main()


{
int data[5];

for(int i = 0; i < 5; i++)
cin >> data[i];

sort(data, data + 5, cmp);

return 0;
}