天天看點

C++ sort排序

文章目錄

    • 概述
    • C++代碼示例

sort排序

冒泡排序

選擇排序

插入排序

快速排序

希爾排序

堆排序

歸并排序

概述

std::sort( )

函數是庫函數提供的排序函數,必須包括頭檔案

#include <algorithm>

,它使用的排序方法是類似于快排的方法,時間複雜度為

n*log2(n)

Sort函數有三個參數:(第三個參數可不寫)

  • 第一個是要排序的數組的起始位址。
  • 第二個是結束的位址(最後一位要排序的位址)
  • 第三個參數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個參數,此時預設的排序方法是從小到大排序。

C++代碼示例

  1. 升序排序

    例如:數組

    a[5]={4,3,2,1,7}

    進行升序排列
  1. 降序排序

    例如:數組

    a[5]={4,3,2,1,7}

    進行降序排列,直接可以寫成:
  1. 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);
}