我是否正确地将此伪代码转换为Java代码?

时间:2016-06-10 13:46:55

标签: java arrays sorting

有一个特定的输入(数组),我需要说明第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);
    }
}

0 个答案:

没有答案