1樓:匿名使用者
不是簡單的快排
stl的sort()演算法,資料量大時採用quick sort,分段遞迴排序,一旦分段後的資料量專小於某個門檻,為避屬免quick sort的遞迴呼叫帶來過大的額外負荷,就改用insertion sort。如果遞迴層次過深,還會改用heap sort。
2樓:匿名使用者
stl的sort()演算法,抄
資料量大時採用quick sort,分段遞迴排序,一旦分段後的資料量小於某個門檻,為避免quick sort的遞迴呼叫帶來過大的額外負荷,就改用insertion sort。如果遞迴層次過深,還會改用heap sort。
3樓:匿名使用者
sort()大部分以快排為基礎,加了hou多的優化,不手寫的快排還快得多(大佬們除外)。
4樓:匿名使用者
一般是快速排序。具體看stl的實現。
呼叫c++庫函式快速排序
5樓:匿名使用者
使用c++標準庫的快速排序函式
c++的標準庫stdlib.h中提供了快速排序函式。
請在使用前加入對stdlib.h的引用:#include 或 #include
qsort(void* base, size_t num, size_t width, int(*)***pare(const void* elem1, const void* elem2))
參數列*base: 待排序的元素(陣列,下標0起)。
num: 元素的數量。
width: 每個元素的記憶體空間大小(以位元組為單位)。可用sizeof()測得。
int(*)***pare: 指向一個比較函式。*elem1 *elem2: 指向待比較的資料。
比較函式的返回值
返回值是int型別,確定elem1與elem2的相對位置。
elem1在elem2右側返回正數,elem1在elem2左側返回負數。
控制返回值可以確定升序/降序。
一個升序排序的例程:
int ***pare(const void *elem1, const void *elem2)
int main()
6樓:匿名使用者
排序方法小結:
方法比較
綜合比較各種內部排序方法,其效能如下入所示:
方法 平均時間 最壞情況 輔助空間 穩定性 特點插入排序 o(n2) o(n2) o(1) √ n<30常用希爾排序 o(n1.2) o(n1.4) o(1) × 不常用起泡排序 o(n2) o(n2) o(1) √ 初學快速排序 o(nlnn) o(n2) o(n) × 常用,易惡化選擇排序 o(n2) o(n2) o(1) √ 初學歸併排序 o(nlog2n)o(nlog2n) o(n) √ 佔空間多,用於外部排序
可以看出,因為各種排序方法個有優缺點,因此不同情況下可以選擇不同方法,通常要考慮的因素右:待排
序記錄的個數n,記錄本身的大小,關鍵字的分佈情況,對排序穩定性的要求和語言工具的條件等。
7樓:匿名使用者
你指的是不是stl呀,
qsort
#include
8樓:匿名使用者
樓上說錯了吧 那是c 中的 c++中是sort函式!
sort函式的用法,Calgorithm裡的sort函式怎麼用
你說matlab嗎?bai 裡面有個引數,可以du用 sort a,ascend 升序 zhisort a,descend 降序 a為向量或dao陣列.也可以這樣回 先對答a求相反數,成 a,然後升序,然後再求相反數.這只是很簡單的數學技巧 在程式設計時相當有用 如果你是c語言,我記得沒有函式.你可...
mul函式的具體用法sort函式的具體用法?
mul指令是乘法指令。使用mul做乘法的時候 1 兩個相乘的數 兩個相乘的數,要麼都是8位,要麼都是16位。如果是8位,一個預設放在al中,另外一個存放在8為暫存器或位元組記憶體單元中 如果是16位,一個預設在ax中,另外一個放在16為暫存器或記憶體暫存器字單元中。2 結果 如果是8位乘法,結果預設...
函式宣告和函式定義的關係是什麼,C 中,函式的宣告與函式的定義有什麼區別?
函式先宣告才可以被呼叫,如同變數先宣告後使用。函式的宣告也可以和函式定義分開。一個函式只可以定義一次,但是可以宣告多次。函式定義 是指對函式功能的確立,包括指定函式名,函式值型別 形參型別 函式體等,它是一個完整的 獨立的函式單位。而 函式宣告 的作用則是把函式的名字 函式型別以及形參型別 個數和順...