这个实现是糟糕的编程吗?

Is this implementation bad programming?

我在学校为冒泡排序练习制作了以下算法。

//Bubble Sort (My code)
static void _BubbleSort(int[] a)
{
    for (int i = 0; i < a.Length - 1; i++)
    {
        for (int j = 0; j < a.Length - 1 - i; j++)
        {
            if (a[j] > a[j + 1])
            {
                swap(a, j);
            }
        }
    }
}

但是当我上网查看时,我看到下面有不同的算法。 我在互联网上找到的算法使用不同的 "for" 循环如下。我的是嵌套 for 循环,但下面的代码没有嵌套。

public void BubbleSort(int[] b)
{
    for (int pass = 1; pass < b.Length; pass++) // passes

        for (int i = 0; i < b.Length - 1; i++) // one pass

            if (b[i] > b[i + 1]) // one comparison
                Swap(b, i); // one swap
}

我想问的是我的代码是不是编程不好的例子?还是我的大脑工作方式与你们计算机科学专业的人不同?顺便说一句,如果你想知道的话,我是文科学生。

What I want to ask is my code is an example of bad programming or not?

您的代码几乎相同。不同之处在于您(正确地)使用大括号来显式声明代码块,而另一个示例则不是。一个问题是您的 循环边界检查 .

@Sriram 还指出您的循环使用 a.Length - 1 - i 而后者只是检查 b.Length - 1,这对您而言实际上不是必需的,并且会导致循环过早结束.使用第二个示例中的后一种方法。

除了您不应该在方法的开头使用 _(这只是命名转换)之外,您的算法是相同的。