The sort you want is gnome sort.
The bubble sort algorithm is:
Run over the entire list from left to right.
At every point in the list, are the current item and next item out of order?
Yes: swap them and remember you made a swap.
No: ignore them.
Did you make any swaps while running over the list?
No: The list is sorted
Yes: Start over from the leftmost item.
The gnome sort algorithm assumes that the gnome begins at the leftmost end of the list. It proceeds:
Step one: Are you past the right end of the list?
Yes: The list is sorted
No: Continue onto the next step.
Step two: Evaluate these two questions:
(1) Are you at the leftmost item?
(2) Are you not at the leftmost item, and the current item
and the item to your left are in order?
Both no:
Swap the current item with the item to your left.
Take a step to the left.
Run step two again.
Either yes:
Take a step to the right.
Go back to step one.
Gnome sort is superior to bubble sort in that the only state you must remember is the current position of the gnome. Whereas with bubble sort you must remember not only the current position, but whether or not you did any swaps in the pass.
I note that in terms of algorithmic complexity, it is no better than bubble sort -- it is quadratic in the size of the list. A nice property though is that it is pretty fast if the list is already mostly sorted.