Hàm qsort() trong C / C++ – Freetuts

Hàm qsort() trong C / C++

Trong bài viết này tất cả chúng ta sẽ tìm hiểu và khám phá về hàm qsort ( ) trong C / C + +. Đây là một hàm được sử dụng trong những bài tập về mảng và đơn cử là những bài tập về sắp xếp trong mảng .

test php

banquyen png

Bài viết này được đăng tại

freetuts.net

, không được copy dưới mọi hình thức.

Hàm qsort() là hàm có sẵn trong thư viện cstdlib, vì vậy trước khi sử dụng nó các bạn nhớ khai báo thư viện đã nhé: #include

Cú pháp hàm qsort() trong C/ C++

Hàm qsort ( ) trong C + + sắp xếp một mảng nhất định theo thứ tự tăng dần bằng cách sử dụng thuật toán Quicksort. Qsort ( ) sử dụng một hàm so sánh để quyết định hành động thành phần nào nhỏ hơn / lớn hơn .

Cú pháp:

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

Trong đó:

  • 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.
  • compare: Một con trỏ đến một hàm so sánh hai phần tử và nó trả về:
    • 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.

Cách dùng hàm qsort() trong C / C++

Trong phần này mình sẽ triển khai một ví dụ để mình họa cho hàm qsort ( ) trong C + + .
Đầu tiên tất cả chúng ta sẽ tạo hàm Compare ( ) để so sánh những thành phần trong mảng. Sau đó sử dụng hàm qsort ( ) để sắp xếp những thành phần trong mảng arr [ ] rồi in ra màn hình hiển thị .

#include 
#include 
using namespace std;
// hàm compare được sử dụng để so sánh các phần tử trong mảng 
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() {
  //khởi tạo một mảng với 10 phần tử
  const int num = 10;
	int arr[num] = {9,4,19,2,7,9,5,15,23,3};
  //in mảng trước khi sắp xếp
	cout << "Mảng trước khi sắp xếp" << endl;
	for (int i=0; i

Kết quả:

qsort 01 PNG

Như vậy là tất cả chúng ta đã khám phá xong hàm qsort ( ) trong C / C + +. Đây là một hàm được sử dụng khá nhiều trong những bài tâp về mảng, thế cho nên hãy rèn luyện thật nhiều để sử dụng nó thành thạo nhé. Chúc những bạn thành công xuất sắc ! ! !

Câu hỏi thường gặp liên quan:

Cùng chuyên mục: