Sắp xếp nổi bọt

chào mn. mn có thể giúp em giải thích cú pháp của sắp xếp nổi bọt không ạ? e hiểu cách nó vẫn hành rồi mà k hiểu cách nó được trình bày ạ! e cảm ơn.

“nó” trình bày như thế nào, và có chỗ nào bạn không hiểu
Còn hỏi câu kiểu như này thì bạn lật sách ra đọc chắc câu cú ổn hơn văn comment nhiều

3 Likes

ý là kiểu như này:

#include<iostream>

using namespace std;

int main() {
    int n;
    int arr[1000];
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    for (int i = 0; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
            if (arr[i] > arr[j]) {
                // mình không hiểu chỗ này nè.
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    return 0;
}

Xem cái này để hiểu nhé https://www.youtube.com/watch?v=R06eV02zg6A

4 Likes
        if (arr[i] > arr[j]) {
            // mình không hiểu chỗ này nè.
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }

cú pháp đâu có gì đâu mà khó hiểu bạn coi lại ý tưởng của thuật toán đó, lần lượt so sánh, nếu thứ tự không đúng với mục tiêu sắp xếp thì đổi chỗ thôi, cụ thể là muốn sắp xếp tăng dần thì số sau phải lớn hơn số trước, só sánh thấy số sau lớn hơn số trước thì đổi chỗ thôi
nếu bạn không hiểu, bạn hãy viết một ví dụ rồi thực hiện sắp xếp xem

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?