呼叫c庫函式快速排序呼叫C庫函式快速排序

2021-03-06 16:31:28 字數 1695 閱讀 7541

1樓:匿名使用者

使用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()

2樓:匿名使用者

排序方法小結:

方法比較

綜合比較各種內部排序方法,其效能如下入所示:

方法 平均時間 最壞情況 輔助空間 穩定性 特點插入排序 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,記錄本身的大小,關鍵字的分佈情況,對排序穩定性的要求和語言工具的條件等。

3樓:匿名使用者

你指的是不是stl呀,

qsort

#include

4樓:匿名使用者

樓上說錯了吧 那是c 中的 c++中是sort函式!

c++ 的stl的sort()函式是什麼排序,快速排序嗎?

5樓:匿名使用者

不是簡單的快排

stl的sort()演算法,資料量大時採用quick sort,分段遞迴排序,一旦分段後的資料量專小於某個門檻,為避屬免quick sort的遞迴呼叫帶來過大的額外負荷,就改用insertion sort。如果遞迴層次過深,還會改用heap sort。

6樓:匿名使用者

stl的sort()演算法,抄

資料量大時採用quick sort,分段遞迴排序,一旦分段後的資料量小於某個門檻,為避免quick sort的遞迴呼叫帶來過大的額外負荷,就改用insertion sort。如果遞迴層次過深,還會改用heap sort。

7樓:匿名使用者

sort()大部分以快排為基礎,加了hou多的優化,不手寫的快排還快得多(大佬們除外)。

8樓:匿名使用者

一般是快速排序。具體看stl的實現。

c語言switchcase語句中呼叫函式求改錯十萬火急

include void main c語言中,如何在switch case後面呼叫函式,一共5個case,都要用函式的呼叫 include void test1 void test2 void test3 void test4 void test5 int main return 0 c語言中,怎樣...

C 呼叫特定建構函式的問題

其實這個問題可以利用一個專門類來解決,解決四路同上面老兄相同。下面是例子。比如class a a class b b class c static b create type3 a,type4 b,type5 c 每次要建立新類時,就呼叫 c create a,b c create a,b,c 還可...

c語言求a a a a a aa n個a 之和 函式呼叫。我這個哪兒錯了

printf su d n su f su是int型別,要用 d輸出。需要說明的是,你這個因為都是int型別,因此a和n的取值範圍很小,稍微大一點的數,就會造成資料溢位。c語言程式設計題 求s a aa aaa aaa a 有n個a a,n都由鍵盤輸入。請問各位哪 找不到哪錯了,我編了一個 和你的不...