The implementation of this algorithm requires using two nested loops. The outer loop is to work on every element in the list starting from the left-most element whereas the inner loop is to find for the smallest element within the unsorted part of the list before the smallest element is swapped with the left-most element.