有一个特定的输入(数组),我需要说明第14行的输出是什么,第17行的输出是什么等等。 这就是我试图将给定的伪代码转换为java代码的原因,因此我从代码中看到了输出的内容。 任务还说枢轴元素是分割数组最左侧的元素。
伪代码:
func int divide(S array; l, r integer){
val := S[r];
i := l;
j := r-1;
repeat
while (S[i] <= val and i < r)
i := i+1;
end while;
while (S[j] >= val and j > 1)
j := j-1;
end while;
if i < j then
swap (S[i], S[j]);
end if;
until i >= j;
swap (S[i], S[r]);
return i;
}
Java代码:
public class Testt {
public static void main (String[] args)
{
int[] S = {2, 10, 6, 7, 13, 4, 1, 12, 5, 9};
int l = 0;
int r = 0;
int val;
int i = 0;
int j = 0;
val = S[r];
i = l;
j = r-1;
do
{
while (S[i] <= val && i < r) {
i = i+1;
}
while (S[j] >= val && j > 1) {
j = j - 1;
}
if (i < j) {
S[j] = S[i];
}
} while (i >= j);
S[r] = S[i];
System.out.println(i);
}
}