LATEST

Cách sắp xếp mảng trong C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn cách sắp xếp mảng trong C / C++. Đây là dạng bài tập cơ bản để các bạn thao tác với mảng một chiều trong C / C++.

Có hai cách sắp xếp một mảng, đó là sắp xếp theo thứ tự tăng dần và theo thứ tự giảm dần. Tùy thuộc vào yêu cầu của bài toán mà chúng ta chọn cách sắp xếp nào.

Ví dụ: Giả sử mình có mảng Number = {4, 2, 7, 1} là các số tự nhiên. Mảng Number sau khi sắp xếp theo thứ tự tăng dần là {1, 2, 4, 7} và thứ tự giảm dần là {7, 4, 2, 1}.

Vậy làm sao để thực hiện chương trình sắp xếp mảng trong C / C++, các bạn hãy bắt đầu cùng mình ngay bây giờ nhé!

Cách sắp xếp mảng trong C / C++ tăng dần

Trong phần này, mình sẽ thực hiện chương trình sắp xếp mảng trong C / C++ theo thứ tự tăng dần. Cụ thể theo từng bước như sau.

Bước 1: Tạo hàm sort_number() với hai tham số truyền vào đó là mảng cần sắp xếp và số lượng phần tử trong mảng. Trong hàm sẽ sử dụng hai vòng lặp for để lặp từng phần tử, so sánh và sắp xếp các phần tử theo tứ tự tăng dần.

void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] > number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   printf("Các số sau khi được sắp xếp tăng dần:\n");
   for (i = 0; i < count; ++i)
      printf("\n%d",number[i]);
}

Bước 2: Yêu cầu người dùng nhập vào số lương phần từ và giá trị cho các phần tử.

int i, count, number[20];
printf("Nhập số lương phần tử trong mảng:");
scanf("%d", &count);
printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
for (i = 0; i < count; ++i)
    scanf("%d", &number[i]);

Bước 3: Gọi hàm sort_number() để sắp xếp và hiển thị kết quả ra màn hình.

sort_numbers_ascending(number, count);

Chương trình C:

#include <stdio.h>
#include <string.h>

void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] > number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   printf("Các số sau khi được sắp xếp tăng dần:\n");
   for (i = 0; i < count; ++i)
      printf("\n%d",number[i]);
}

int main()
{
   int i, count, number[20];
   printf("Nhập số lương phần tử trong mảng:");
   scanf("%d", &count);
   printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
    
   for (i = 0; i < count; ++i)
      scanf("%d", &number[i]);
  
   sort_numbers_ascending(number, count);
   printf("\n-------------------------------\n");
   printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai22 02 PNG

Chương trình C++:

#include <iostream>
using namespace std;
void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] > number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   cout<<"Các số sau khi được sắp xếp tăng dần:\n";
   for (i = 0; i < count; ++i)
      cout<<"\n"<< number[i];
}
int main()
{
   int i, count, number[20];
  
   cout<<"Nhập số lương phần tử trong mảng:";
   cin>>count;
   cout<<"\nNhập giá trị cho từng phần tử trong mảng:\n";
    
   for (i = 0; i < count; ++i)
      cin>>number[i];
  
   sort_numbers_ascending(number, count);
   cout<<"\n-------------------------------\n";
   cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai22 01 PNG

Cách sắp xếp mảng trong C / C++ giảm dần

Tương tự như cách sắp xếp mảng trong C / C++ tăng dần, để sắp xếp mảng theo thứ tự giảm dần ta chỉ cần thay đổi điều kiện một chút mà thôi. Các bạn có thể tham khảo chương trình dưới đây nhé.

Chương trình C:

#include <stdio.h>
#include <string.h>

void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] < number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   printf("Các số sau khi được sắp xếp giảm dần:\n");
   for (i = 0; i < count; ++i)
      printf("\n%d",number[i]);
}

int main()
{
  int i, count, number[20];
  
   printf("Nhập số lương phần tử trong mảng:");
   scanf("%d", &count);
   printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
    
   for (i = 0; i < count; ++i)
      scanf("%d", &number[i]);
  
   sort_numbers_ascending(number, count);
   printf("\n-------------------------------\n");
   printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai22 03 PNG

Chương trình C++:

#include <iostream>
using namespace std;
void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] < number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   cout<<"Các số sau khi được sắp xếp giảm dần:\n";
   for (i = 0; i < count; ++i)
      cout<<"\n"<< number[i];
}
int main()
{
   int i, count, number[20];
  
   cout<<"Nhập số lương phần tử trong mảng:";
   cin>>count;
   cout<<"\nNhập giá trị cho từng phần tử trong mảng:\n";
    
   for (i = 0; i < count; ++i)
      cin>>number[i];
  
   sort_numbers_ascending(number, count);
   cout<<"\n-------------------------------\n";
   cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai22 04 PNG

Như vậy là chúng ta đã cùng nhau tìm hiểu về cách sắp xếp mảng trong C / C++. Có hai cách sắp xếp đó là tăng dần và giảm dần, các bạn có thể lựa chọn tùy vào bài toán nhé. Chúc các bạn thực hiện thành công !!!

Cùng chuyên mục:

Xóa node khỏi cây nhị phân tìm kiếm

Xóa node khỏi cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cách gộp hai danh sách liên kết đôi

Cách gộp hai danh sách liên kết đôi

Tìm kiếm phần tử trong DSLK đôi

Tìm kiếm phần tử trong DSLK đôi

Xóa node trong DSLK đôi

Xóa node trong DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Duyệt danh sách liên kết đôi

Duyệt danh sách liên kết đôi

Tạo node mới trong DSLK đôi

Tạo node mới trong DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

Quản lý sinh viên bằng DSLK đơn

Quản lý sinh viên bằng DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Tạo node mới trong DSLK đơn

Tạo node mới trong DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Cấu trúc dữ liệu của DSLK đơn