文章目錄
-
- 概述
- C++代碼示例
sort排序
冒泡排序
選擇排序
插入排序
快速排序
希爾排序
堆排序
歸并排序
概述
std::sort( )
函數是庫函數提供的排序函數,必須包括頭檔案
#include <algorithm>
,它使用的排序方法是類似于快排的方法,時間複雜度為
n*log2(n)
Sort函數有三個參數:(第三個參數可不寫)
- 第一個是要排序的數組的起始位址。
- 第二個是結束的位址(最後一位要排序的位址)
- 第三個參數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個參數,此時預設的排序方法是從小到大排序。
C++代碼示例
-
升序排序
例如:數組
進行升序排列a[5]={4,3,2,1,7}
-
降序排序
例如:數組
進行降序排列,直接可以寫成:a[5]={4,3,2,1,7}
-
cmp函數的實作方式:
如果後面的數比前面的數大,則
bool cmp( int a, int b ){
return a>b; //降序排列,如果升序排列,則改為return a<b;
}
完整C++代碼示例
#include <algorithm>
using namespace std;
void printArray(int *a, int len)
{
for (size_t i = 0; i < len; i++) printf("%d\n", a[i]);
}
int main()
{
int a[] = {4,1, 2, 3, 5,7, 6};
sort(a, a+7);
printArray(a, 7);
printf("降序排序:\n");
sort(a, a+7, [](int a, int b){return a > b;});
printArray(a, 7);
}