參考排序是最基礎的演算法之一,常見的排序有氣泡排序、選擇排序、插入排序、快速排序等等,其平均時間複雜度由o(n
2)
o(n^2)
o(n2)到o(n
log2
n)
o(nlog_2n)
o(nlog
2n)
不等。然而在做專案或者刷題時,要自己實現乙個排序演算法相對來說麻煩一些,且有些時候不是很必要。因此,我們可以直接呼叫c++的庫函式sort()
。
sort()函式時c++自帶的函式,用於陣列的排序。
使用的排序方法是類似於快速排序的方法(既有快速排序又有與其它排序方法的結合),時間複雜度為o(n
log2
n)
o(nlog_2n)
o(nlog
2n)
,因此效率很快。
標頭檔案需引入標頭檔案:
#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語言程式的編譯過程我們才能更深層次地了解程式的執行機制 源 通過...