01 July 2016

Hàm sắp xếp mảng tăng dần trong lập trình C "Thuật toán nổi bọt"


Run demo: bấm vào đây

Hàm sắp xếp mảng tăng giảm dần trong lập trình C
C 2016
#include <stdio.h>
int a[100];  //Khai báo mảng array kích thước 100
int main() //Hàm thân chạy chương trình bắt buộc có
{
     int i,j,n,k;  //Khai báo biến kiểu int
     printf("Nhap so mang cua phan tu: "); //Hiển thị màn hình
     scanf("%d", &n);  //Nhập vào số lần lặp
     for (i = 0; i < n; i++) //vòng lặp for
     {
      printf("nhap phan tu thu %d: ", i + 1);
      scanf("%d", &a[i]); //Nhập vào mảng số i
     }
     for (i = 0; i < n-1;i++){
         for (j = i+1; j < n;j++){
             if (a[i]>a[j]) //Tăng dần or Giảm dần a[i]<a[j]
             {
                  k = a[i];  //k là biến tạm lưu giá trị
                  a[i] = a[j];  //thực hiện đổi chỗ lấy a[j]
                  a[j] = k;  //thực hiện đổi chỗ lấy a[i]
             }
         }
     }
     printf("mang sau khi da sap xep la:\n");
     for (i = 0; i < n; i++) {
          printf(" %d ", a[i]); //Mỗi lần lặp in ra mảng i
     }
}
Kiến Thức Cần Có:
1. Khai báo kiểu int ?
2. Khai báo kiểu Array mảng ? Mảng 1 chiều và mảng 2 chiều là gì?
3. printf là gì?
4. scanf là gì ?
5. Vòng lặp for là gì ?

Xem thêm: Hàm đổi chỗ dùng con trỏ trong lập trình C bấm vào đây

6 nhận xét:

  1. làm sao để nó hiển thị ra các bước khi sắp xếp ra màn hình vậy

    ReplyDelete
  2. AD cho em hỏi đoạn: a[i]>a[j] với :( em không hiểu giải thuật đoạn này.
    Tại sao phần tử thứ [i] > phần tử thứ [j] lại ra tăng dần ạ???
    Em ngu quá hix :(

    ReplyDelete
  3. Replies
    1. Rất vui vì đã lan tỏa đến mn. không có gì nhé b.

      Delete

 

BACK TO TOP

Xuống cuối trang