sort函式見下表:
函式名 | 功能描述 |
sort | 對給定區間所有元素進行排序 |
stable_sort | 對給定區間所有元素進行穩定排序 |
partial_sort | 對給定區間所有元素部分排序 |
partial_sort_copy | 對給定區間複製並排序 |
nth_element | 找出給定區間的某個位置對應的元素 |
is_sorted | 判斷一個區間是否已經排好序 |
partition | 使得符合某個條件的元素放在前面 |
stable_partition | 相對穩定的使得符合某個條件的元素放在前面 |
sort函式的用法(C++排序庫函式的調用)
對數組進行排序,在c++中有庫函式幫我們實現,這們就不需要我們自己來編程進行排序了。
(一)為什麼要用c++標準庫里的排序函式
Sort()函式是c++一種排序方法之一,學會了這種方法也打消我學習c++以來使用的冒泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用的排序方法是類似於快排的方法,時間複雜度為n*log2(n),執行效率較高!
(二)c++標準庫里的排序函式的使用方法
I)Sort函式包含在頭檔案為#include<algorithm>的c++標準庫中,調用標準庫里的排序方法可以不必知道其內部是如何實現的,只要出現我們想要的結果即可!
II)Sort函式有三個參數:
(1)第一個是要排序的數組的起始地址。
(2)第二個是結束的地址(最後一位要排序的地址的下一地址)
(3)第三個參數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個參數,此時默認的排序方法是從小到大排序。
Sort函式使用模板:
Sort(start,end,排序方法)
下面就具體使用sort()函式結合對數組裡的十個數進行排序做一個說明!
例一:sort函式沒有第三個參數,實現的是從小到大
例二
通過上面的例子,會產生疑問:要實現從大到小的排序腫么辦?
這就如前文所說需要在sort()函數裡的第三個參數裡做文章了,告訴程式我要從大到小排序!
需要加入一個比較函式compare(),此函式的實現過程是這樣的
這就是告訴程式要實現從大到小的排序的方法!
假設自己定義了一個結構體node
有一個node類型的數組node arr[100],想對它進行排序:先按a值升序排列,如果a值相同,再按b值降序排列,如果b還相同,就按c降序排列。就可以寫這樣一個比較函式:
以下是代碼片段: