首先,您可以編寫自己的排序函數。
以下函數用於從小到大對整數數組進行排序。
虛空?sort(int?*a,?int?l)//a是數組地址,l是數組長度。
{
int?我,?j;
int?五;
//排序實體
對於(我?=?0;?我?& lt?l?-?1;?我?++)
對於(j?=?I+1;?j?& lt?l;?j?++)
{
如果(a【I】?& gt?a【j】)//如果前面的比後面的大,就換。
{
v?=?a【I】;
甲【我】?=?a【j】;
a【j】?=?五;
}
}}對於這樣的自定義排序函數,可以根據定義的規範進行調用。
第二,C語言有自己的qsort函數。
功能:使用快速排序程序進行排序。
頭文件:stdlib.h
原型:void qsort(void * base,int nelem,int width,int(* fcmp)(const void *,const void *));
參數:
1要排序數組的第壹個地址
2數組中要排序的元素數量
3每個元素占用的空間
4指向函數的指針,用於確定排序順序。
這個函數必須編寫自己的比較函數,即使要排序的元素是int int、float等C語言基本類型。
以下是qsort的壹個示例:
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
int?comp(常量?void*a,常量?void * b)//用於比較的函數。
{
回歸?*(int *)a-*(int *)b;
}
int?主()
{
int?a【10】?=?{2,4,1,5,5,3,7,4,1,5};//無序數組。
int?我;
qsort(a,n,sizeof(int),comp);//調用qsort排序
for(I = 0;我& lt10;i++)//輸出排序後的數組
{
printf(“% d \ t“,array【I】);
}
回歸?0;
}
擴展數據:
sort函數的用法(調用C++排序庫函數)
數組是排序的,c++中有庫函數幫助我們實現,所以我們不需要自己編程。
(A)為什麽使用c++標準庫中的排序函數?
Sort()函數是c++的排序方法之壹。學習這種方法還消除了我學習c++以來壹直使用的冒泡排序和選擇性排序導致的執行效率低的問題!因為它使用的排序方法類似於快速排序方法,時間復雜度為n * log2(n),執行效率很高!
(2)如何使用c++標準庫中的排序函數
I)I)排序函數包含在頭文件# include中
II)II)排序函數有三個參數:
(1)第壹個是要排序的數組的起始地址。
(2)第二個是結束地址(要排序的最後壹個地址旁邊的地址)。
(3)第三個參數是排序方法,可以從最大到最小或從最小到最大,第三個參數可以省略。此時,默認的排序方法是從最小到最大。
排序功能使用模板:
排序(開始、結束、排序方法)
讓我們解釋壹下如何結合使用sort()函數對數組中的十個數字進行排序!
示例sort函數沒有第三個參數,它是從小到大實現的。
# include & ltiostream & gt
# include & lt算法& gt
使用命名空間std
int main()
{
int a【10】= { 9,6,3,8,5,2,7,4,1,0 };
for(int I = 0;我& lt10;i++)
cout & lt& lta【I】& lt;& ltendl
sort(a,a+11);
for(int I = 0;我& lt10;i++)
cout & lt& lta【I】& lt;& ltendl
返回0;
}
編譯程序
GCC,由GNU組織開發的開源免費編譯器。
Windows操作系統下的MinGW GCC
基於LLVM的BSD協議開源編譯器Clang。
Visual C++?cl.exe,微軟VC++編譯器。
集成開發環境
代碼塊、開源和免費C/C++ IDE。
CodeLite,壹個開源和跨平臺的C/C++集成開發環境。
Orwell Dev-C++,壹個可移植的C/C++IDE。
不含碳
看版臺
Visual Studio系列
妳好世界
參考資料:
百度百科-排序功能