69,372
社区成员
发帖
与我相关
我的任务
分享
void stooge(int A[], int i, int j)
{
if(A[i] > A[j])//首尾交换
{
// exchange
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
if(i+1 >= j)
return;
int k = (j-i+1)/3;
stooge(A, i, j-k);// 递归调用前 2/3
stooge(A, i+k, j);// 递归调用后 2/3
stooge(A, i, j-k);// 递归调用前 2/3
}
loop: 1
i=0,j=4: begin: stooge(A, 0, 4)
i=0,j=4,k=1: stooge(A, i, j-k); stooge(A, 0, 3)
loop: 2
i=0,j=3: begin: stooge(A, 0, 3)
i=0,j=3,k=1: stooge(A, i, j-k); stooge(A, 0, 2)
loop: 3
i=0,j=2: begin: stooge(A, 0, 2)
i=0,j=2,k=1: stooge(A, i, j-k); stooge(A, 0, 1)
loop: 4
i=0,j=1: begin: stooge(A, 0, 1)
end: stooge(A, 0, 1)
i=0,j=2,k=1: stooge(A, i+k, j); stooge(A, 0, 1)
loop: 5
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=0,j=2,k=1: stooge(A, i+k, j); stooge(A, 0, 1)
loop: 6
i=0,j=1: begin: stooge(A, 0, 1)
end: stooge(A, 0, 1)
i=0,j=2,k=1: end: stooge(A, 0, 1)
i=0,j=3,k=1: stooge(A, i+k, j); stooge(A, 0, 2)
loop: 7
i=1,j=3: begin: stooge(A, 1, 3)
i=1,j=3,k=1: stooge(A, i, j-k); stooge(A, 1, 2)
loop: 8
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=1,j=3,k=1: stooge(A, i+k, j); stooge(A, 1, 2)
loop: 9
i=2,j=3: begin: stooge(A, 2, 3)
end: stooge(A, 2, 3)
i=1,j=3,k=1: stooge(A, i+k, j); stooge(A, 1, 2)
loop: 10
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=1,j=3,k=1: end: stooge(A, 1, 2)
i=0,j=3,k=1: stooge(A, i+k, j); stooge(A, 0, 2)
loop: 11
i=0,j=2: begin: stooge(A, 0, 2)
i=0,j=2,k=1: stooge(A, i, j-k); stooge(A, 0, 1)
loop: 12
i=0,j=1: begin: stooge(A, 0, 1)
end: stooge(A, 0, 1)
i=0,j=2,k=1: stooge(A, i+k, j); stooge(A, 0, 1)
loop: 13
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=0,j=2,k=1: stooge(A, i+k, j); stooge(A, 0, 1)
loop: 14
i=0,j=1: begin: stooge(A, 0, 1)
end: stooge(A, 0, 1)
i=0,j=2,k=1: end: stooge(A, 0, 1)
i=0,j=3,k=1: end: stooge(A, 0, 2)
i=0,j=4,k=1: stooge(A, i+k, j); stooge(A, 0, 3)
loop: 15
i=1,j=4: begin: stooge(A, 1, 4)
i=1,j=4,k=1: stooge(A, i, j-k); stooge(A, 1, 3)
loop: 16
i=1,j=3: begin: stooge(A, 1, 3)
i=1,j=3,k=1: stooge(A, i, j-k); stooge(A, 1, 2)
loop: 17
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=1,j=3,k=1: stooge(A, i+k, j); stooge(A, 1, 2)
loop: 18
i=2,j=3: begin: stooge(A, 2, 3)
end: stooge(A, 2, 3)
i=1,j=3,k=1: stooge(A, i+k, j); stooge(A, 1, 2)
loop: 19
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=1,j=3,k=1: end: stooge(A, 1, 2)
i=1,j=4,k=1: stooge(A, i+k, j); stooge(A, 1, 3)
loop: 20
i=2,j=4: begin: stooge(A, 2, 4)
i=2,j=4,k=1: stooge(A, i, j-k); stooge(A, 2, 3)
loop: 21
i=2,j=3: begin: stooge(A, 2, 3)
end: stooge(A, 2, 3)
i=2,j=4,k=1: stooge(A, i+k, j); stooge(A, 2, 3)
loop: 22
i=3,j=4: begin: stooge(A, 3, 4)
end: stooge(A, 3, 4)
i=2,j=4,k=1: stooge(A, i+k, j); stooge(A, 2, 3)
loop: 23
i=2,j=3: begin: stooge(A, 2, 3)
end: stooge(A, 2, 3)
i=2,j=4,k=1: end: stooge(A, 2, 3)
i=1,j=4,k=1: stooge(A, i+k, j); stooge(A, 1, 3)
loop: 24
i=1,j=3: begin: stooge(A, 1, 3)
i=1,j=3,k=1: stooge(A, i, j-k); stooge(A, 1, 2)
loop: 25
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=1,j=3,k=1: stooge(A, i+k, j); stooge(A, 1, 2)
loop: 26
i=2,j=3: begin: stooge(A, 2, 3)
end: stooge(A, 2, 3)
i=1,j=3,k=1: stooge(A, i+k, j); stooge(A, 1, 2)
loop: 27
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=1,j=3,k=1: end: stooge(A, 1, 2)
i=1,j=4,k=1: end: stooge(A, 1, 3)
i=0,j=4,k=1: stooge(A, i+k, j); stooge(A, 0, 3)
loop: 28
i=0,j=3: begin: stooge(A, 0, 3)
i=0,j=3,k=1: stooge(A, i, j-k); stooge(A, 0, 2)
loop: 29
i=0,j=2: begin: stooge(A, 0, 2)
i=0,j=2,k=1: stooge(A, i, j-k); stooge(A, 0, 1)
loop: 30
i=0,j=1: begin: stooge(A, 0, 1)
end: stooge(A, 0, 1)
i=0,j=2,k=1: stooge(A, i+k, j); stooge(A, 0, 1)
loop: 31
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=0,j=2,k=1: stooge(A, i+k, j); stooge(A, 0, 1)
loop: 32
i=0,j=1: begin: stooge(A, 0, 1)
end: stooge(A, 0, 1)
i=0,j=2,k=1: end: stooge(A, 0, 1)
i=0,j=3,k=1: stooge(A, i+k, j); stooge(A, 0, 2)
loop: 33
i=1,j=3: begin: stooge(A, 1, 3)
i=1,j=3,k=1: stooge(A, i, j-k); stooge(A, 1, 2)
loop: 34
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=1,j=3,k=1: stooge(A, i+k, j); stooge(A, 1, 2)
loop: 35
i=2,j=3: begin: stooge(A, 2, 3)
end: stooge(A, 2, 3)
i=1,j=3,k=1: stooge(A, i+k, j); stooge(A, 1, 2)
loop: 36
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=1,j=3,k=1: end: stooge(A, 1, 2)
i=0,j=3,k=1: stooge(A, i+k, j); stooge(A, 0, 2)
loop: 37
i=0,j=2: begin: stooge(A, 0, 2)
i=0,j=2,k=1: stooge(A, i, j-k); stooge(A, 0, 1)
loop: 38
i=0,j=1: begin: stooge(A, 0, 1)
end: stooge(A, 0, 1)
i=0,j=2,k=1: stooge(A, i+k, j); stooge(A, 0, 1)
loop: 39
i=1,j=2: begin: stooge(A, 1, 2)
end: stooge(A, 1, 2)
i=0,j=2,k=1: stooge(A, i+k, j); stooge(A, 0, 1)
loop: 40
i=0,j=1: begin: stooge(A, 0, 1)
end: stooge(A, 0, 1)
i=0,j=2,k=1: end: stooge(A, 0, 1)
i=0,j=3,k=1: end: stooge(A, 0, 2)
i=0,j=4,k=1: end: stooge(A, 0, 3)