Bước tới nội dung

Lời giải

Tủ sách mở Wikibooks

Đề bài: Nhập vào dãy gồm N số nguyên. Sắp xếp dãy thành một dãy tăng dần.

Lời giải

Sử dụng Sắp xếp đổi chỗ, hay Sắp xếp chọn (Selection sort).

#include <iostream>
using namespace std;

int main() {
    int N, A[100];
    cout << "Nhap N: "; cin >> N;
    cout << "Nhap day: ";
    for (int i = 0 ; i < N ; i++) cin >> A[i];

    for (int i = 0 ; i < N - 1 ; i++)
        for (int j = i + 1 ; j < N ; j++)
            if (A[i] > A[j]) swap(A[i], A[j]);
    cout << "Day duoc sap xep: ";
    for (int i = 0 ; i < N ; i++) cout << A[i] << " ";

    return 0;
}

Sử dụng Sắp xếp nổi bọt (Bubble sort)

#include <iostream>
using namespace std;

int main() {
    int N, A[100];
    cout << "Nhap N: "; cin >> N;
    cout << "Nhap day: ";
    for (int i = 0 ; i < N ; i++) cin >> A[i];

    for (int i = 0 ; i < N - 1 ; i++)
        for (int j = N - 1 ; j > i ; j--)
            if (A[j] < A[j-1]) swap(A[j], A[j-1]);
    cout << "Day duoc sap xep: ";
    for (int i = 0 ; i < N ; i++) cout << A[i] << " ";

    return 0;
}

Chương trình chạy

Nhap N: 5        
Nhap day: 8 0 4 10 2
Day duoc sap xep: 0 2 4 8 10

Nhap N: 12
Nhap day: 15 26 79 8 0 83 109 801 938 424 324 712 
Day duoc sap xep: 0 8 15 26 79 83 109 324 424 712 801 938