Trang chủ Tin Học Lớp 8 $\color{green}\text{Giải thích thuật toán giúp mình: }$ $\color{Green}{\text{Giải thích thuật...

$\color{green}\text{Giải thích thuật toán giúp mình: }$ $\color{Green}{\text{Giải thích thuật toán giúp mình: }}$ Cho một mảng gồm n số nguyên Làm sao để sắp x

Câu hỏi :

$\color{green}\text{Giải thích thuật toán giúp mình: }$ $\color{Green}{\text{Giải thích thuật toán giúp mình: }}$ Cho một mảng gồm n số nguyên Làm sao để sắp xếp các phần tử theo thứ tự tăng dần/giảm dần ???

Lời giải 1 :

#include <iostream>

using namespace std;

int main()
{
    int n,i,j,t;
    
    cin>>n;
    int a[n];
    for (i=0; i<n; i++)
        cin>> a[i];
    
    for (i=0; i<n; i++)
        for (j=i+1; j<n; j++)
            if (a[i]>a[j])  /* với dấu < thì dãy số sẽ xếp giảm dần */
            {
                t=a[i];            /* đổi chỗ a[1] và a[2] sau khi đổi xong, nó tiếp tục so sánh a[1] với a[3] kế */
                a[i]=a[j];        /* nếu a[1] vẫn lớn hơn a[3] thì tiếp tục đổi chỗ cho đến hết vòng lặp trong*/
                a[j]=t;
            }
    for (i=0; i<n; i++)
        cout<< a[i];
}

Giải thích: Khi vòng lặp chạy, nó sẽ so sánh a[i] với các số a[j] (những con số đứng sau nó), nếu dùng dấu >, thì nó sẽ đẩy các sổ nhỏ hơn lên trước nó (tăng dần) và ngược lại nếu dấu < thì nó sẽ đẩy các số lớn lên trước (giảm dần), cho đến khi kết thúc vòng lặp.

image

Thảo luận

Lời giải 2 :

* Sắp xếp các phần tử theo thứ tự tăng dần :

- Bước 1 : nhập n và các số hạng a1, a2, .. , an

- Bước 2 : m ← n

- Bước 3 : nếu m < 2 thì đưa ra dãy a đã sắp xếp rồi kết thúc

- Bước 4 : m ← m - 1, i ← 0

- Bước 5 : i ← i + 1

- Bước 6 : nếu i > m thì quay lại bước 3

- Bước 7 : nếu ai > ai + 1 thì tráo đổi ai với ai + 1 cho nhau

- Bước 8 : quay lại bước 5

* Sắp xếp các phần tử theo thứ tự giảm dần :

- Bước 1 : nhập n và các số hạng a1, a2, .. , an

- Bước 2 : m ← n

- Bước 3 : nếu m < 2 thì đưa ra dãy a đã sắp xếp rồi kết thúc

- Bước 4 : m ← m - 1, i ← 0

- Bước 5 : i ← i + 1

- Bước 6 : nếu i > m thì quay lại bước 3

- Bước 7 : nếu ai < ai + 1 thì tráo đổi ai với ai + 1 cho nhau

- Bước 8 : quay lại bước 5

* Thuật toán sắp xếp dãy theo thứ tự giảm dần và tăng dần khác nhau ở bước 7:

+ a[i] < a[i + 1] tráo đổi giá trị a[i] và a[i + 1] khi giá trị trước bé hơn giá trị sau, sau khi tráo đổi ta được giá trị trước lớn hơn giá trị sau, thực hiện tuần tự hết dãy ta sẽ nhận được dãy giảm dần

+ a[i] > a[i + 1] tráo đổi giá trị a[i] và a[i + 1] khi giá trị trước lớn hơn giá trị sau, sau khi tráo đổi ta được giá trị trước bé hơn giá trị sau, thực hiện tuần tự hết dãy ta sẽ nhận được dãy tăng dần

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK