title: Most efficient bubble sort mechanism
body: <p>I used some of my spare time to code a Little sorting mechanism: a bubble sort mechanism, here is what I came up with:</p>
  
  <pre><code>public class BubbleSort
  {
      private bool _numbersAreSorted = false;
  
      public float[] Sort(float[] _list)
      {
          float num1;
          float num2;
  
          while (!_numbersAreSorted)
          {
              _numbersAreSorted = true;
              for (int i = 0; i &lt; _list.Length - 1; i++)
              {
                  num1 = _list[i];
                  num2 = _list[i + 1];
                  if (num1 &gt; num2)
                  {
                      _list[i] = num2;
                      _list[i + 1] = num1;
                      i--;
                      _numbersAreSorted = false;
                  }
              }
          }
  
          return _list;
      }
  }
  </code></pre>
  
  <p>As you can see, it isn't something fancy, but it gets the Job done. What my question is: is this an 'efficient' way of programming a bubble sorting mechanism, or can I make some improvements?</p>