C ++ Qsort () - Thư Viện Chuẩn C ++

Hàm qsort () trong C ++ sắp xếp một mảng đã cho theo thứ tự tăng dần bằng cách sử dụng thuật toán Quicksort.

Hàm qsort () sử dụng một hàm so sánh để quyết định phần tử nào nhỏ hơn / lớn hơn phần tử kia.

qsort () nguyên mẫu

void qsort (void * base, size_t num, size_t size, int (* so sánh) (const void *, const void *));

Hàm được định nghĩa trong tệp tiêu đề.

Hàm qsort () sắp xếp mảng đã cho được trỏ theo cơ sở theo thứ tự tăng dần. Mảng chứa numcác phần tử, mỗi phần tử có kích thước là byte.

Hàm được trỏ bởi so sánh được sử dụng để so sánh hai phần tử của mảng. Hàm này sửa đổi nội dung của chính mảng theo thứ tự tăng dần.

Tuy nhiên, nếu hai hoặc nhiều phần tử bằng nhau, thứ tự của chúng là không xác định.

qsort () Tham số

  • base: Con trỏ đến phần tử đầu tiên của mảng để sắp xếp
  • num: Số phần tử trong mảng
  • size: Kích thước tính bằng byte của mỗi phần tử trong mảng
  • so sánh: Một con trỏ đến một hàm so sánh hai phần tử. Nó trở lại
    • một số nguyên âm nếu đối số đầu tiên nhỏ hơn đối số thứ hai
    • một số nguyên dương nếu đối số đầu tiên lớn hơn đối số thứ hai
    • không nếu cả hai đối số bằng nhau

Nguyên mẫu của hàm so sánh trông giống như sau:

int so sánh (const void * a, const void * b);

qsort () Giá trị trả về

Hàm qsort () không trả về bất cứ thứ gì. Mảng đã sắp xếp được trỏ đến theo cơ sở.

Ví dụ: Hàm qsort () hoạt động như thế nào?

#include #include using namespace std; int compare(const void* a, const void* b) ( const int* x = (int*) a; const int* y = (int*) b; if (*x> *y) return 1; else if (*x < *y) return -1; return 0; ) int main() ( const int num = 10; int arr(num) = (9,4,19,2,7,9,5,15,23,3); cout << "Before sorting" << endl; for (int i=0; i

Từ khóa » Cách Dùng Hàm Qsort