CÁC HÀM C / C++
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT
Thông báo trang web đã đổi chủ: Chúng tôi sẽ sàn lọc nội dung, loại bỏ các bài viết vi phạm.

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

Trong bài viết này chúng ta sẽ tìm hiểu về hàm qsort() trong C / C++. Đây là một hàm được sử dụng trong các bài tập về mảng và cụ thể là các 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<cstdlib>

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 phần tử nào nhỏ hơn / lớn hơn.

Cú pháp:

Bài viết này được đăng tại [free tuts .net]

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ẽ thực hiện một ví dụ để mình họa cho hàm qsort() trong C++.

Đầu tiên chúng ta sẽ tạo hàm Compare() để so sánh các phần tử trong mảng. Sau đó sử dụng hàm qsort() để sắp xếp các phần tử trong mảng arr[] rồi in ra màn hình.

#include <iostream>
#include <cstdlib>
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<num; i++)
		cout << arr[i] << " ";
  //sử dụng hàm qsort để sắp xếp mảng
	qsort(arr,num,sizeof(int),compare);
	cout << endl << endl;
  //in mảng sau khi sắp xếp
	cout << "Mảng sau khi sắp xếp" << endl;
	for (int i=0; i<num; i++)
		cout << arr[i] << " ";

  cout<<"\n--------------------------------\n";
  cout<<"Chương trình này được đăng tại freetuts.net";
}

Kết quả:

qsort 01 PNG

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

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

Cùng chuyên mục:

Cách điều khiển Touch Sensor trong Arduino

Cách điều khiển Touch Sensor trong Arduino

Cách giao tiếp Keypad với màn hình LCD trong Arduino

Cách giao tiếp Keypad với màn hình LCD trong Arduino

Cách điều khiển Keypad trong Arduino

Cách điều khiển Keypad trong Arduino

Cách điều khiển màn hình LCD trong Arduino

Cách điều khiển màn hình LCD trong Arduino

Hướng dẫn điều khiển cảm biến ánh sáng trong Arduino

Hướng dẫn điều khiển cảm biến ánh sáng trong Arduino

Cách điều khiển công tắc (switch) trong Arduino

Cách điều khiển công tắc (switch) trong Arduino

Cách điều khiển button trong Arduino

Cách điều khiển button trong Arduino

Hướng dẫn điều khiển đèn LEG bằng Touch Sensor

Hướng dẫn điều khiển đèn LEG bằng Touch Sensor

Hướng dẫn điều khiển đèn LEG bằng nút nhấn trong Arduino

Hướng dẫn điều khiển đèn LEG bằng nút nhấn trong Arduino

Hướng dẫn điều khiển đèn LEG RGB trong Arduino

Hướng dẫn điều khiển đèn LEG RGB trong Arduino

Hướng dẫn bật tắt đèn LED trong Arduino

Hướng dẫn bật tắt đèn LED trong Arduino

Viết chương trình Arduino đầu tiên

Viết chương trình Arduino đầu tiên

Các kiến thức cần biết trước khi học lập trình với Arduino

Các kiến thức cần biết trước khi học lập trình với Arduino

Hướng dẫn cài đặt và sử dụng Arduino IDE

Hướng dẫn cài đặt và sử dụng Arduino IDE

Arduino là gì? Ứng dụng của Arduino trong cuộc sống

Arduino là gì? Ứng dụng của Arduino trong cuộc sống

Cách nhân hai số trong ngôn ngữ C

Cách nhân hai số trong ngôn ngữ C

Cách cộng hai số nguyên trong C

Cách cộng hai số nguyên trong C

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Bài này sẽ tổng hợp hơn 1000 bài tập C / C++ có lời giải…

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện cstdio C / C++

Các hàm trong thư viện cstdio C / C++

Top