Giải thích vòng lặp for lồng nhau?

Ai giải thích kĩ cho em hiểu với ạ, em mới học lập trình nên tư duy còn kém quá, hi

void sap_xep_theo_thu_tu_giam_dan_diem_so(Doibong ds[], int n)
{
	for(int i = 0;i < n-1;i++)
	{
		for(int j = i+1;j < n;j++)
		{
			if(ds[i].tongdiem < ds[j].tongdiem)
			{
				Doibong tam = ds[i];
				ds[i] = ds[j];
				ds[j] = tam;
			}
		}
	}
}

Code này là selection sort.

Link:

một topic khác tương tự:

2 Likes

Selection phiên bản lỗi :slight_smile:

3 Likes

Tớ k hiểu đoạn kichthuoc - 1 ấy nghĩa là gì

i = kichthuoc - 1 -> j = i + 1 = kichthuoc -> vòng for (j = i+1; j < kichthuoc; j++) sẽ không được thực hiện -> i < kichthuoc - 1

1 Like

Phải lùi lại 1 slot vì vòng lặp trong sẽ bắt đầu với phần tử liền sau nó.

3 Likes

Cảm ơn các bác, em hiểu rồi ạ :slight_smile:

You can refer this resource for detailed explanation on “nested for loop”.

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