我是否正确地将此伪代码翻译成了 Java?我特别关注此排序算法的伪代码中的第 3 行

Did I correctly translate this pseudocode into Java? I'm particularly looking at line 3 in the pseudocode for this sorting algorithm

我是否正确地将此伪代码翻译成了 Java?我特别关注此排序算法的伪代码中的第 3 行。

这是我试图翻译的伪代码:

    Sort-Array(A)
    for i = 1 to (A.length – 1)
        for j = (i + 1) to A.length
            if (A[j] > A[i])
                // swap A[i] and A[j]
                buffer = A[j]
                A[j] = A[i]
                A[i] = buffer

我的翻译:

static void bubbleSort(int array[]) {
  int size = array.length;
  
  // loop to access each array element
  for (int i = 1; i < size - 1; i++)
   
     // loop comparing the array elements
     for (int j = i + 1; j < size; j++)
     
        // compare two adjacent elements
        // changing > to < to sort in either order
        if (array[j] > array[i]) {
        
           // swapping elements. 
           int buffer = array[j];
           array[j] = array[i];
           array[i] = buffer;
           
        }

是的,但有一个错误。在伪代码中你从 i = 1 开始,因为在伪代码中我们不从 0 开始计数。在你的程序中你必须从 0 开始,因为数组的第一个元素从数组 [0] 开始,而不是数组 [1]。

第 3 行翻译正确,但这实际上不是冒泡排序算法。这里 if (array[j] > array[i]) 将所有其他元素与 i 元素进行比较,而在冒泡排序中,您只需要比较数组的相邻元素。因此,基本上要将其转换为冒泡排序,您需要将 jj-1

进行比较