01/10/2018, 10:50

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;
			}
		}
	}
}
HK boy viết 13:00 ngày 01/10/2018

Code này là selection sort.

Link:

GeeksforGeeks – 31 Jan 14

Selection Sort - GeeksforGeeks

The selection sort algorithm sorts an array by repeatedly finding the minimum element (considering ascending order) from unsorted part and putting it at the beginning.… Read More »

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

Xin chào , Mình đang làm một bài tập về sắp xếp mảng trong C. và đây là code mẫu mà mình kiếm được #include <stdio.h> #include <stdlib.h> void sapxep(int a[],int kichthuoc); int main() { int a[8]={8,3,4,5,6,7,1,2}; printf("Mang truoc khi sap xep\n"); printf("a ={8,3,4,5,6,7,1,2}\n"); sapxep(a,8); return 0; } void sapxep(int a[],int kichthuoc) { int i,j,temp=0; for(i=0;i<kichthuoc-1;i++) for(j=i+1;j<kichthuoc;j++) { if(a[i]>a[j]) { …

rogp10 viết 12:55 ngày 01/10/2018

Selection phiên bản lỗi

Nguyễn Duy viết 12:51 ngày 01/10/2018

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

HK boy viết 12:52 ngày 01/10/2018

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

rogp10 viết 13:04 ngày 01/10/2018

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ó.

Nguyễn Duy viết 12:52 ngày 01/10/2018

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

WatsonGeorge viết 12:56 ngày 01/10/2018

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

Bài liên quan
0