30/09/2018, 18:18

In ra số phép so sánh và gán của thuật toán sắp xếp

void interChangeSort(TS ts[], int n)
{
    for(int i=0; i<n-1; i++)
        for(int j=i+1; j<n; j++)
            if(ts[i].tongDiem > ts[j].tongDiem)
                HoanVi(ts[i], ts[j]);
}

Đề bài: Sắp xếp và in ra màn hình số lần so sánh và số phép gán đã thực hiện. Mọi người cho mình xin ý tưởng với

Gió viết 20:26 ngày 30/09/2018

Họ yêu cầu đếm tại đâu thì đếm tại đó thôi. VD


int compare_count=0, swap_count=0;
void interChangeSort(TS ts[], int n)
{
    for(int i=0; i<n-1; i++)
        for(int j=i+1; j<n; j++)
            if(compare_count++,ts[i].tongDiem > ts[j].tongDiem)
                swap_count++,HoanVi(ts[i], ts[j]);
}

Interns viết 20:20 ngày 30/09/2018

à hiểu rồi cam on @Gio

Interns viết 20:25 ngày 30/09/2018

nếu tính luôn vòng for thì sao hả

for(countGan++, i=0; countSoSanh++, i<n-1; countGan++, i++)
        for(countGan++, j=i+1; countSoSanh++, j<n; countGan++, j++)
            if(countSoSanh++, ts[i].tongDiem > ts[j].tongDiem)
                countHoanVi++, HoanVi(ts[i], ts[j]);

Bạn xem mình làm gì đây có đúng không @gio

Bài liên quan
0