C 基礎程式設計 026 sort 函式簡介

2021-10-07 05:05:00 字數 1984 閱讀 1423

參考排序是最基礎的演算法之一,常見的排序有氣泡排序、選擇排序、插入排序、快速排序等等,其平均時間複雜度由o(n

2)

o(n^2)

o(n2)到o(n

log2

n)

o(nlog_2n)

o(nlog

2​n)

不等。然而在做專案或者刷題時,要自己實現乙個排序演算法相對來說麻煩一些,且有些時候不是很必要。因此,我們可以直接呼叫c++的庫函式sort()

sort()函式時c++自帶的函式,用於陣列的排序。

使用的排序方法是類似於快速排序的方法(既有快速排序又有與其它排序方法的結合),時間複雜度為o(n

log2

n)

o(nlog_2n)

o(nlog

2​n)

,因此效率很快。

標頭檔案需引入標頭檔案:

#include

函式引數

sort()函式共有三個引數:

第乙個引數表示陣列的開始位址

第二個引數表示陣列的結束位址

第三個引數表示陣列的排序方式(預設為公升序,可自定義排序方式(自己寫乙個bool型別的函式))。

舉例說明

#include

#include

#include

using

namespace std;

intmain()

;sort

(array, array +10)

;for

(int i : array)

system

("pause");

return0;

}

#include

#include

#include

using

namespace std;

bool

compare

(int a,

int b)

intmain()

;sort

(array, array +

10, compare)

;for

(int i : array)

system

("pause");

return0;

}

#include

#include

#include

using

namespace std;

intmain()

; vector<

int>

vec(array, array +10)

;sort

(vec.

begin()

, vec.

end())

;for

(int i : vec)

system

("pause");

return0;

}

#include

#include

#include

using

namespace std;

bool

compare

(int a,

int b)

intmain()

; vector<

int>

vec(array, array +10)

;sort

(vec.

begin()

, vec.

end(

), compare)

;for

(int i : vec)

system

("pause");

return0;

}

C 程式設計筆記之sort

1 sort實現 stl中的sort呼叫了兩個函式,introsort loop 可以避免最壞情況的快速排序 final insertion sort 插入排序 template inline void sort randomaccessiter first,randomaccessiter las...

C語言程式設計練習25 sqrt log sin 函式

題目描述 小明的老師給小明布置了這樣一道作業題,乙個序列符合以下定義 現問你這個序列的第n項是多少?輸入輸入包含多組測試資料。每組輸入乙個整數n 0 n 1000000 當輸入 1時,輸入結束。輸出對於每組輸入,輸出第n項的值,結果請mod 1000000。樣例輸入 copy 0 1思路 題目已經給...

C 程式設計基礎

在軟體開發步驟中,我認為流程圖扮演著乙個非常重要的重要,就像我覺得我們學英語學語法一樣,其真正的目的在於訓練我們的邏輯思維,而只有將乙個程式的演算法用流程圖算出來,那麼我們接下來的工作就會簡單很多。而我們也要了解編制程式,只有了解整個c語言程式的編譯過程我們才能更深層次地了解程式的執行機制 源 通過...