我學習的快速合併算法,但不能準確地理解這段代碼:這段代碼的解釋?
#include <stdio.h>
#define N 10000
main()
{
int i,p,t,id[N];
for (i = 0; i < N ; i++) id[i]= i;
while (scanf ("%d %d\n" , &p, &q) == 2)
{
for(i = p; i != id[i]; i = id[i]) ;
for (j = q; j != id[j]; j = id[j]) ;
if (i == j) continue;
id [i] = j ;
}
}
我的主要問題是for
循環。如果符合condition
和init
,增量語句會做什麼?
注意:這不是我的代碼的教科書!
你在這裏發帖之前做測試輸入預演? – goelakash
你用'#define N 5'之類的東西試了一下,並給它提供了一些值嗎? –
'for'循環大致等同於'{initialization; while(condition){body in loop;增量}}'嘗試像這樣更改代碼,然後在調試器中逐行執行代碼。它應該可以幫助你理解發生了什麼。 –