Search code examples
c#bubble-sort

Is this implementation bad programming?


I made the algorithm below for bubblesort exercise at school.

//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);
            }
        }
    }
}

But when I check the internet I see different algorithm below. The algorithm I found in internet uses different "for" loop as follows. Mine is nested for loops but the code below is not nested.

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? or my brain is working different than you computer science guys? I am arts student by the way if you wonder.


Solution

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

    Your code almost is identical. There is a difference in that you are (correctly) using curly brackets to explicitly state code blocks, while the other example isn't. One problem is your loop bounds check.

    @Sriram also pointed to the fact that your loop uses a.Length - 1 - i while the latter simply checks for b.Length - 1, which isn't actually necessary on your part and would cause the loop to prematurely end. Use the latter approach from the second example.

    Other than the fact you shouldn't use _ at the beginning of your method (this is simply a naming convertion), your algorithm is identical.