Giải thích code sắp xếp 1 hàng trong mảng 2 chiều

int tg,k;
for(j=0;j<m-1;j++)
{
    for(k=j+1;k<m;k++)
    {
        if(a[1][j]<a[1][k])
        {    
            tg=a[1][j];
            a[1][j]=a[1][k];
            a[1][j]=tg;
        }
    }
}

e search trên mạng thấy đoạn code sắp xếp 1 hàng trong mảng 2 chiều. Ai giải thích giúp e được k e k hiểu ạ?

Ý tưởng cơ bản của selection sort là tìm max/min thứ nhất, thứ hai, thứ ba, … rồi sẽ ra được mảng giảm/tăng theo ý muốn.
Nếu thấy rằng arr[i] đóng vai trò là min thứ i+1 thì đây có thể xem là selection sort phiên bản lỗi (swap nhiều quá). Vì vậy kinh điển không bao giờ nhắc đến thuật toán này.

Vì sao?

Giải thích thuật toán sắp xếp?

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