跳轉到內容

C 程式設計/stdlib.h/qsort

來自華夏公益教科書,開放的書籍,為開放的世界

qsort 是一個用於對陣列中的元素進行排序的函式。它以快速排序演算法命名,儘管 C 標準不要求它使用任何特定的演算法來實現。[1]

qsort 是一個通用函式,它可以對任何大小的陣列進行排序,包含任何型別的物件(儘管如果物件的大小不同,則必須使用指標),並且使用任何型別的比較謂詞。然而,通用性是以型別安全為代價的,因為 qsort 操作空指標。

void qsort(void *base, size_t nmemb, size_t size, int (*compare)(const void *, const void *));

陣列的內容根據比較函式 compare 指向的順序排序。當專案比較相等時,它們在結果陣列中的順序是不確定的,這意味著 qsort 不需要是穩定的排序。

參考資料

[編輯 | 編輯原始碼]
  1. ISO/IEC 9899:1999 規範 (PDF). p. 319, § 7.20.5.2.
[編輯 | 編輯原始碼]
華夏公益教科書